Članci

Šta je Laravel Eloquent, kako ga koristiti, tutorijal sa primjerima

Laravel PHP framework uključuje Eloquent Object Relational Mapper (ORM), koji pruža izuzetno lak način za komunikaciju sa bazom podataka. 

Laravel i Eloquent pomažu da se ubrza razvoj aplikacija i platforme, pružajući adekvatno rješenje za većinu problema. Zahtjevi se rješavaju bržim razvojem, kao i dobro organiziranim kodom za višekratnu upotrebu, održavanjem i skalabilnim kodom. 

Kako Eloquent radi

Programeri mogu raditi Eloquent sa više baza podataka efikasno koristeći implementaciju ActiveMethod. To je arhitektonski obrazac u kojem model kreiran u strukturi Model-View-Controller (MVC) odgovara tabeli u bazi podataka. Prednost je u tome što modeli izvode uobičajene operacije baze podataka bez kodiranja dugih SQL upita. Predlošci vam omogućavaju da tražite podatke u tabelama i ubacite nove zapise u tabele. Proces sinhronizacije više baza podataka koji rade na različitim sistemima je pojednostavljen. Ne morate pisati SQL upite. Sve što treba da uradite je defiZavršite tabele baze podataka i odnose između njih, a Eloquent će obaviti ostatak posla.

Laravel priprema

Cijenjenje korisnosti Eloquent ORM-a i razumijevanje ekosistema je neophodno. Koraci za početak:

  1. Instalirajte Laravel sa getcomposer.org, da biste to uradili, pratite uputstva ovde
  2. Stvoriti migration koristeći konzolu Artisan
  3. Kreirajte šablone eloquent
  4. trči i seed baze podataka

Artisan Console je naziv interfejsa komandne linije uključenog u Laravel. Pruža skup korisnih komandi za korištenje tokom razvoja vaše aplikacije. Pokreće ga moćna komponenta Symfony Console.

Da vidite listu svih dostupnih Artisan komandi, možete koristiti naredbu list:

php artisan list

Sve naredbe dolaze sa sažetim opisom argumenata i opcija. Ovo je prikazano na ekranu "pomoć". Da biste prikazali ekran pomoći, jednostavno prethodite imenu komande sa "pomoć" kao što je prikazano:

php artisan help migrate

Migration

Migracija je proces upravljanja bazom podataka pisanjem PHP-a SQL. Pruža način dodavanja kontrole verzija bazi podataka. 

Da kreirate migraciju, samo pokrenite sljedeću naredbu:

php artisan make:migration create_student_records

Ovo kreira datoteku za migraciju. U svom uređivaču teksta otvorite datoteku koju ste upravo kreirali u fascikli 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');
    }
}

Kod je klasa sa istim imenom 'create student records', i ima dvije metode: gore i dolje. Up metoda bi trebala napraviti promjene u bazi podataka; tako da kad god migrirate svoju bazu podataka, izvršit će se bilo koji kod u up metodi. S druge strane, metoda down bi trebala vratiti te promjene baze podataka; pa kad god pokrenete rollback della migration, down metoda bi trebala poništiti ono što je učinila metoda gore. Unutar metode up postoji program za pravljenje šema koji se koristi za kreiranje i manipulaciju tabelama. Šta se dešava ako otkažete neke od svojih migracija? Sve što trebate učiniti je implementirati sljedeću naredbu:

php artisan migrate:rollback

I on će sakupiti posljednju migration koji je implementiran. Također, možete potpuno vratiti bazu podataka tako što ćete pokrenuti:

php artisan migrate:reset

Ovo će otkazati sve vaše migracije.

Deficija modela Eloquent

Nakon što je migracija baze podataka završena, sljedeći proces je seedingEloquent dolazi u igru ​​od seeding ubacuje zapise u našu bazu podataka. Dakle, morat ćete kreirati predloške prije popunjavanja baze podataka. Svaka tablica baze podataka ima odgovarajući model koji se koristi za interakciju s tom tablicom. Predlošci vam omogućavaju da tražite podatke u vašim tabelama, kao i da ubacite nove zapise u tabelu. Najlakši način za instanciranje modela je korištenje sljedeće naredbe:

php artisan make:model Student
Primjer šablona je prikazan ispod Student, koji se može koristiti za preuzimanje i pohranjivanje informacija iz tabele baze podataka naših učenika:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Kada generirate model i istovremeno želite generirati migraciju baze podataka, možete koristiti opciju –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Sijačice

Sveukupni sijači su poseban skup klasa koje nam omogućavaju da popunjavamo našu bazu podataka iznova i iznova s ​​potpuno istim podacima. Implementiramo sljedeću naredbu:

php artisan make:seeder StudentsRecordSeeder

U uređivaču teksta, u folderu seeds, otvorite novokreiranu datoteku sa imenom datoteke: StudentsRecordSeeder.php. Kao što vidite, ovo je samo vrlo jednostavna klasa sa jednom metodom koja se zove run().

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Kod je samo omot oko klase komande konzole, posebno napravljen da pomogne u zadatku seeding. Uredite kod, a zatim ga sačuvajte.

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.
public function run()
{
    echo 'Seeding!';
}

I odlazak do terminala:

php artisan db:seed --class=StudentsRecordSeeder

Sada možete popuniti tabelu nekim unosima i pokrenuti:

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

Ovdje možete nastaviti brisati, dodavati, mijenjati unose u DB, a zatim ih vraćati jednostavnom komandom.

CRUD sa Laravel Eloquent

CRUD operacije sa Laravel Eloquent objektno-relacionim maperom (ORM) olakšavaju Laravel programerima rad sa više baza podataka. Izvodi operacije kreiranja, čitanja, ažuriranja i brisanja (CRUD) i mapira modele objekata u tablice baze podataka. Rukuje svim interakcijama baze podataka potrebnim za CRUD operacije.

Kreiranje zapisa

Možete koristiti ::create metodu da ubacite novi zapis u bazu podataka.

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

Pored jednostavnog načina kreiranja prikazanog iznad, možete kreirati i novi objekt i dati mu različite atribute. Zatim možete pozvati funkciju save() i pokrenuti kod. Metode poput firstOrCreate() ili firstOrNew() su druge opcije za kreiranje zapisa. Ovo će vam omogućiti da pronađete učenika sa određenim atributima; ako taj učenik nije pronađen, kreirat ćete ga u bazi podataka ili instancirati novu instancu.

Čitanje zapisa

Koristeći Eloquent ORM, možete pronaći zapise u svojoj bazi podataka. Upiti su jednostavno konstruisani i nude nesmetan tok. Da kreirate izjave:where, koristit ćete metode get() I first(). Metoda first() će vratiti samo jedan zapis, dok metoda get() će vratiti niz zapisa koji se može ponavljati. Takođe, metoda find() se može koristiti sa nizom primarnih ključeva, koji će vratiti kolekciju podudarnih zapisa. Evo nekoliko primjera:

$student = Students::all();

Ovaj kod dobija sve učenike. Dok sljedeći kod pronalazi određenog učenika po ID-u:

$student = Studenti::find(1);

Takođe, kao što je prikazano u nastavku, kod opisuje traženje učenika na osnovu specifičnog atributa.

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

Za metodu get(), ovaj kod pokazuje kako pronaći učenika sa nivoom iznad 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Snimi ažuriranje

Ažuriranje zapisa pomoću Eloquenta je jednako jednostavno. Da biste ažurirali zapis, samo pronađite zapis koji želite da ažurirate, uredite atribute i sačuvajte. Na primjer, da promijenite nivo ocjene učenika John Doea na 5, prvo pronađite učenika, a zatim izvršite metodu spremanja.

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

Metoda spremanja se također može koristiti za ažuriranje modela koji već postoje u bazi podataka.

Izbrišite zapise

Eloquent se može pohvaliti svojim jednostavnim procesom ažuriranja zapisa, ali ima istu priču sa brisanjem. Postoje dvije opcije: izvući zapise i izvršiti metodu brisanja ili jednostavno koristiti metodu uništavanja. Da biste pronašli i izbrisali zapis, jednostavno pokrenite sljedeće naredbe:

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

Za brisanje zapisa i više zapisa pokreću se naredbe:

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

Imajte na umu da su parametri uništavanja samo primarni ključevi za razliku od metode delete koja može prihvatiti bilo koji stupac baze podataka.

Za pronalaženje i brisanje svih učenika iznad nivoa 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Nedavni članak

Zelena i digitalna revolucija: Kako prediktivno održavanje transformira industriju nafte i plina

Prediktivno održavanje revolucionira sektor nafte i plina, s inovativnim i proaktivnim pristupom upravljanju postrojenjima.…

22 april 2024

Britanski antimonopolski regulator podigao je BigTech uzbunu zbog GenAI

UK CMA izdao je upozorenje o ponašanju Big Tech-a na tržištu umjetne inteligencije. Tamo…

18 april 2024

Casa Green: energetska revolucija za održivu budućnost u Italiji

Uredba o „zelenim kućama“, koju je formulisala Evropska unija za poboljšanje energetske efikasnosti zgrada, završila je svoj zakonodavni proces sa…

18 april 2024

Elektronska trgovina u Italiji na +27% prema novom izvještaju Casaleggio Associati

Predstavljen godišnji izvještaj Casaleggio Associati o e-trgovini u Italiji. Izvještaj pod nazivom “AI-Commerce: granice e-trgovine s umjetnom inteligencijom”.…

17 april 2024