Članki

Kaj je Laravel Eloquent, kako ga uporabljati, vadnica s primeri

Ogrodje Laravel PHP vključuje Eloquent Object Relational Mapper (ORM), ki zagotavlja izjemno enostaven način komuniciranja z bazo podatkov. 

Laravel in Eloquent pomagata pospešiti razvoj aplikacij in platform ter zagotavljata ustrezno rešitev za večino težav. Zahteve so obravnavane s hitrejšim razvojem, pa tudi z dobro organizirano kodo, ki jo je mogoče ponovno uporabiti, vzdrževati in razširljivo. 

Kako deluje Eloquent

Razvijalci lahko delajo v Eloquent z več bazami podatkov učinkovito z uporabo izvedbe ActiveMethod. Gre za arhitekturni vzorec, kjer model, ustvarjen v strukturi Model-View-Controller (MVC), ustreza tabeli v bazi podatkov. Prednost je, da modeli izvajajo običajne operacije baze podatkov brez kodiranja dolgih poizvedb SQL. Predloge vam omogočajo poizvedovanje po podatkih v tabelah in vstavljanje novih zapisov v tabele. Postopek sinhronizacije več baz podatkov, ki se izvajajo v različnih sistemih, je poenostavljen. Ni vam treba pisati poizvedb SQL. Vse kar morate storiti je defiDokončajte tabele baze podatkov in odnose med njimi, Eloquent pa bo opravil ostalo delo.

Laravel priprava

Ceniti uporabnost Eloquent ORM in razumeti ekosistem je nujno. Koraki za začetek:

  1. Namestite Laravel z getcomposer.org, za to sledite navodilom tukaj
  2. Oblikovanje migration z uporabo konzole Artisan
  3. Ustvarite predloge eloquent
  4. teči i seed baze podatkov

Artisan Console je ime vmesnika ukazne vrstice, vključenega v Laravel. Zagotavlja niz uporabnih ukazov za uporabo med razvijanjem vaše aplikacije. Poganja ga močna komponenta Symfony Console.

Če si želite ogledati seznam vseh razpoložljivih ukazov Artisan, lahko uporabite ukaz list:

php artisan list

Vsi ukazi imajo jedrnat opis svojih argumentov in možnosti. To je prikazano na zaslonu "pomoč". Če želite prikazati zaslon s pomočjo, preprosto pred imenom ukaza vpišite »pomoč«, kot je prikazano:

php artisan help migrate

Migration

Migracija je postopek upravljanja baze podatkov z pisanjem PHP namesto tega SQL. Ponuja način za dodajanje nadzora različic v bazo podatkov. 

Če želite ustvariti selitev, samo zaženite naslednji ukaz:

php artisan make:migration create_student_records

S tem se ustvari datoteka za selitev. V urejevalniku besedil odprite datoteko, ki ste jo pravkar ustvarili v mapi database\migrations:

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateStudentRecordsTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('student__records', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('student__records');
    }
}

Koda je razred z istim imenom 'create student records', in ima dva načina: gor in dol. Up metoda bi morala spremeniti bazo podatkov; tako da se vsakič, ko preselite svojo bazo podatkov, izvede katera koli koda v metodi up. Po drugi strani pa bi morala metoda navzdol razveljaviti te spremembe baze podatkov; torej vsakič, ko zaženete rollback od migration, bi morala metoda navzdol razveljaviti, kar je storila metoda up. Znotraj metode up obstaja graditelj shem, ki se uporablja za ustvarjanje in upravljanje tabel. Kaj se zgodi, če prekličete nekatere svoje selitve? Vse kar morate storiti je, da implementirate naslednji ukaz:

php artisan migrate:rollback

In pobral bo zadnjega migration ki je bil izveden. Bazo podatkov lahko v celoti obnovite tako, da zaženete:

php artisan migrate:reset

To bo preklicalo vse vaše selitve.

Deficija modelov Eloquent

Ko je selitev baze podatkov končana, je naslednji postopek seedingEloquent pride v poštev od seeding vnaša zapise v našo bazo podatkov. Zato boste morali ustvariti predloge, preden zapolnite bazo podatkov. Vsaka tabela baze podatkov ima ustrezen model, ki se uporablja za interakcijo s to tabelo. Predloge vam omogočajo, da poizvedujete po podatkih v vaših tabelah, kot tudi vstavite nove zapise v tabelo. Najlažji način za ustvarjanje primerka modela je uporaba naslednjega ukaza:

php artisan make:model Student
Spodaj je prikazan primer predloge Student, ki se lahko uporablja za pridobivanje in shranjevanje informacij iz tabele baze podatkov naših študentov:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Ko ustvarite model in hkrati želite ustvariti migracijo baze podatkov, lahko uporabite možnost –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Semena

Splošni sejalniki so poseben nabor razredov, ki nam omogočajo, da našo zbirko podatkov vedno znova napolnimo z enakimi podatki. Implementiramo naslednji ukaz:

php artisan make:seeder StudentsRecordSeeder

V urejevalniku besedil pod mapo semena odprite novo ustvarjeno datoteko z imenom datoteke: StudentsRecordSeeder.php. Kot lahko vidite, je to le zelo preprost razred z eno samo metodo run().

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

Koda je le ovoj okrog razreda ukazov konzole, posebej izdelan za pomoč pri nalogi seeding. Uredite kodo in jo nato shranite.

Glasilo o inovacijah
Ne zamudite najpomembnejših novic o inovacijah. Prijavite se, če jih želite prejemati po e-pošti.
public function run()
{
    echo 'Seeding!';
}

In grem do terminala:

php artisan db:seed --class=StudentsRecordSeeder

Zdaj lahko tabelo napolnite z nekaj vnosi in zaženete:

php artisan db:seed --class=class=StudentsRecordSeeder

Tukaj lahko še naprej brišete, dodajate, spreminjate vnose v DB in jih nato obnovite s preprostim ukazom.

CRUD z Laravel Eloquent

Operacije CRUD z Laravel Eloquent objektno-relacijskim preslikavom (ORM) razvijalcem Laravel olajšajo delo z več zbirkami podatkov. Izvaja operacije ustvarjanja, branja, posodabljanja in brisanja (CRUD) ter preslika objektne modele v tabele baze podatkov. Upravlja vse interakcije z bazo podatkov, potrebne za operacije CRUD.

Ustvarjanje evidenc

Za vstavljanje novega zapisa v bazo podatkov lahko uporabite metodo ::create.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

Poleg preproste metode ustvarjanja, prikazane zgoraj, lahko ustvarite tudi nov predmet in mu dodelite različne atribute. Nato lahko pokličete funkcijo save() in zaženete kodo. Metode, kot so firstOrCreate() oz firstOrNew() so druge možnosti za ustvarjanje zapisov. To vam bo omogočilo, da najdete študenta z določenimi lastnostmi; če tega študenta ne najdete, ga boste ustvarili v bazi podatkov ali instancirali nov primerek.

Bralne evidence

Z uporabo Eloquent ORM lahko poiščete zapise v svoji bazi podatkov. Poizvedbe so preprosto sestavljene in ponujajo nemoten potek. Če želite ustvariti izjave:where, boste uporabili metode get() In first(). Metoda first() vrne samo en zapis, medtem ko metoda get() bo vrnil niz zapisov, ki ga je mogoče zankati. Tudi metoda find() se lahko uporablja z nizom primarnih ključev, ki bo vrnil zbirko ujemajočih se zapisov. Tukaj je nekaj primerov:

$student = Students::all();

To kodo dobijo vsi učenci. Medtem ko naslednja koda najde določenega študenta po ID-ju:

$študent = študenti::najdi(1);

Kot je prikazano spodaj, koda opisuje tudi iskanje študenta na podlagi določenega atributa.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Za metodo get() ta koda prikazuje, kako najti študenta z ravnjo nad 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Posodobitev zapisa

Posodabljanje zapisov z uporabo Eloquenta je prav tako enostavno. Če želite posodobiti zapis, poiščite zapis, ki ga želite posodobiti, uredite atribute in shranite. Na primer, če želite spremeniti razred učenca Johna Doeja na 5, najprej poiščite učenca in nato izvedite metodo shranjevanja.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Metodo shranjevanja lahko uporabite tudi za posodobitev modelov, ki že obstajajo v bazi podatkov.

Brisanje zapisov

Eloquent se ponaša z enostavnim posodabljanjem zapisov, vendar ima isto zgodbo z brisanjem. Obstajata dve možnosti: izvleči zapise in izvesti metodo brisanja ali preprosto uporabiti metodo uničenja. Če želite poiskati in izbrisati zapis, preprosto zaženite naslednje ukaze:

$student = Students::find(1);
$student->delete();

Če želite izbrisati zapis in več zapisov, se zaženejo ukazi:

Students::destroy(1);
Students::destroy(1, 2, 3);

Upoštevajte, da so parametri za uničenje samo primarni ključi, za razliko od metode za brisanje, ki lahko sprejme kateri koli stolpec baze podatkov.

Za iskanje in brisanje vseh študentov nad 10. stopnjo.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Glasilo o inovacijah
Ne zamudite najpomembnejših novic o inovacijah. Prijavite se, če jih želite prejemati po e-pošti.

Nedavni članki

Založniki in OpenAI podpisujejo sporazume za urejanje pretoka informacij, ki jih obdeluje umetna inteligenca

Prejšnji ponedeljek je Financial Times objavil dogovor z OpenAI. FT licencira svoje vrhunsko novinarstvo ...

April 30 2024

Spletna plačila: Evo, kako vam storitve pretakanja omogočajo večno plačevanje

Milijoni ljudi plačujejo storitve pretakanja in plačujejo mesečne naročnine. Splošno mnenje je, da si…

April 29 2024

Veeam ponuja najobsežnejšo podporo za izsiljevalsko programsko opremo, od zaščite do odziva in obnovitve

Coveware by Veeam bo še naprej zagotavljal storitve odzivanja na incidente kibernetskega izsiljevanja. Coveware bo nudil forenziko in zmogljivosti sanacije ...

April 23 2024

Zelena in digitalna revolucija: kako predvideno vzdrževanje preoblikuje naftno in plinsko industrijo

Prediktivno vzdrževanje revolucionira sektor nafte in plina z inovativnim in proaktivnim pristopom k upravljanju obratov.…

April 22 2024