Articole

Ce este Laravel Eloquent, cum se folosește, tutorial cu exemple

Cadrul PHP Laravel include Eloquent Object Relational Mapper (ORM), care oferă o modalitate extrem de ușoară de a comunica cu o bază de date. 

Laravel și Eloquent ajută la accelerarea dezvoltării aplicațiilor și platformei, oferind o soluție adecvată la majoritatea problemelor. Cerințele sunt abordate cu o dezvoltare mai rapidă, precum și cu un cod bine organizat, reutilizabil, care poate fi întreținut și scalabil. 

Cum funcționează Eloquent

Dezvoltatorii pot lucra în Eloquent cu mai multe baze de date utilizând eficient o implementare ActiveMethod. Este un model arhitectural în care modelul creat în structura Model-View-Controller (MVC) corespunde unui tabel din baza de date. Avantajul este că modelele efectuează operațiuni comune de bază de date fără a codifica interogări SQL lungi. Șabloanele vă permit să interogați date în tabele și să inserați noi înregistrări în tabele. Procesul de sincronizare a mai multor baze de date care rulează pe sisteme diferite este simplificat. Nu trebuie să scrieți interogări SQL. Tot ce trebuie să faci este defiTerminați tabelele bazei de date și relațiile dintre ele, iar Eloquent va face restul muncii.

Preparat Laravel

Aprecierea utilității Eloquent ORM și înțelegerea ecosistemului este o necesitate. Pași pentru a începe:

  1. Instalați Laravel de pe getcomposer.org, pentru a face acest lucru urmați instrucțiunile de aici
  2. Crea migration folosind consola Artisan
  3. Creați șabloane eloquent
  4. alerga eu seed a bazei de date

Artisan Console este numele interfeței liniei de comandă inclusă în Laravel. Oferă un set de comenzi utile de utilizat în timpul dezvoltării aplicației. Este condus de componenta puternică Symfony Console.

Pentru a vedea o listă cu toate comenzile Artisan disponibile, puteți utiliza comanda listă:

php artisan list

Toate comenzile vin cu o descriere concisă a argumentelor și opțiunilor sale. Acest lucru este afișat într-un ecran de „ajutor”. Pentru a afișa un ecran de ajutor, pur și simplu precedați numele comenzii cu „ajutor”, așa cum se arată:

php artisan help migrate

Migration

Migrarea este un proces de gestionare a bazei de date prin scrierea PHP SQL. Oferă o modalitate de a adăuga controlul versiunilor la baza de date. 

Pentru a crea o migrare, trebuie doar să rulați următoarea comandă:

php artisan make:migration create_student_records

Aceasta creează fișierul de migrare. În editorul de text, deschideți fișierul pe care tocmai l-ați creat în dosar 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');
    }
}

Codul este o clasă cu același numecreate student records', și are două metode: sus și jos. Metoda up ar trebui să facă modificări în baza de date; deci ori de câte ori migrați baza de date, orice cod din metoda up va fi executat. Pe de altă parte, metoda down ar trebui să anuleze acele modificări ale bazei de date; deci ori de câte ori rulați rollback de migration, metoda down ar trebui să anuleze ceea ce a făcut metoda up. În interiorul metodei up există generatorul de schemă folosit pentru a crea și manipula tabelele. Ce se întâmplă dacă anulați unele dintre migrațiile dvs.? Tot ce trebuie să faceți este să implementați următoarea comandă:

php artisan migrate:rollback

Și îl va colecta pe ultimul migration care a fost implementat. De asemenea, puteți restaura complet baza de date rulând:

php artisan migrate:reset

Acest lucru va anula toate migrațiile dvs.

Defițiune de modele de Eloquent

După ce migrarea bazei de date este finalizată, următorul proces este seedingEloquent intră în joc începând cu seeding introduce înregistrări în baza noastră de date. Deci, va trebui să creați șabloanele înainte de a popula baza de date. Fiecare tabel de bază de date are un model corespunzător care este utilizat pentru a interacționa cu acel tabel. Șabloanele vă permit să interogați datele din tabelele dvs., precum și să inserați noi înregistrări în tabel. Cel mai simplu mod de a instanția modelul este să utilizați următoarea comandă:

php artisan make:model Student
Un exemplu de șablon este prezentat mai jos Student, care poate fi folosit pentru a prelua și stoca informații din tabelul bazei de date a elevilor noștri:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Când generați un model și, în același timp, doriți să generați o migrare a bazei de date, puteți utiliza opțiunea –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Semănători

Seeders generali sunt un set special de clase care ne permit să ne populăm baza de date din nou și din nou cu exact aceleași date. Implementăm următoarea comandă:

php artisan make:seeder StudentsRecordSeeder

În editorul de text, sub folderul semințe, deschideți fișierul nou creat cu numele fișierului: StudentsRecordSeeder.php. După cum puteți vedea, aceasta este doar o clasă foarte simplă cu o singură metodă numită run,

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Codul este doar un înveliș în jurul unei clase de comandă de consolă, creat special pentru a ajuta la sarcina de seeding. Editați codul și apoi salvați-l.

Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.
public function run()
{
    echo 'Seeding!';
}

Și mergând la terminal:

php artisan db:seed --class=StudentsRecordSeeder

Acum puteți completa tabelul cu câteva intrări și puteți rula:

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

Aici puteți continua să ștergeți, să adăugați, să modificați intrări în DB, apoi să le restaurați cu o simplă comandă.

CRUD cu Laravel Eloquent

Operațiunile CRUD cu Laravel Eloquent object-relational mapper (ORM) facilitează pentru dezvoltatorii Laravel să lucreze cu mai multe baze de date. Efectuează operațiuni de creare, citire, actualizare și ștergere (CRUD) și mapează modele de obiecte la tabelele bazei de date. Se ocupă de toate interacțiunile de bază de date necesare pentru operațiunile CRUD.

Crearea de înregistrări

Puteți folosi metoda ::create pentru a insera o înregistrare nouă în baza de date.

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

Pe lângă metoda simplă de creare prezentată mai sus, puteți crea și un nou obiect și îi puteți da atribute diferite. Apoi, puteți apela funcția save() și rula codul. Metode ca firstOrCreate() sau firstOrNew() sunt alte opțiuni pentru crearea înregistrărilor. Acestea vă vor permite să găsiți un student cu anumite atribute; dacă acel student nu este găsit, îl vei crea în baza de date sau vei instanția o nouă instanță.

Citirea înregistrărilor

Folosind Eloquent ORM, puteți găsi înregistrări în baza de date. Interogările sunt construite simplu și oferă un flux fluid. Pentru a crea declarații:where, vei folosi metodele get() Și first(). Metoda first() va returna doar o înregistrare, în timp ce metoda get() va returna o matrice de înregistrări care poate fi efectuată în buclă. De asemenea, metoda find() poate fi folosit cu o serie de chei primare, care va returna o colecție de înregistrări care se potrivesc. Aici sunt cateva exemple:

$student = Students::all();

Acest cod primește toți studenții. În timp ce următorul cod găsește un anumit student după ID:

$student = Students::find(1);

De asemenea, după cum se arată mai jos, codul descrie căutarea unui student pe baza unui anumit atribut.

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

Pentru metoda get(), acest cod arată cum să găsiți un student cu un nivel peste 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Înregistrează actualizarea

Actualizarea înregistrărilor folosind Eloquent este la fel de ușoară. Pentru a actualiza o înregistrare, doar găsiți înregistrarea pe care doriți să o actualizați, editați atributele și salvați. De exemplu, pentru a schimba nivelul clasei elevului lui John Doe la 5, mai întâi găsiți elevul și apoi executați metoda de salvare.

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

Metoda de salvare poate fi folosită și pentru a actualiza modele care există deja în baza de date.

Ștergeți înregistrările

Eloquent se laudă cu procesul său ușor de actualizare a înregistrărilor, dar are aceeași poveste cu ștergerea. Există două opțiuni: extrageți înregistrările și executați metoda de ștergere sau pur și simplu utilizați metoda distrugerii. Pentru a găsi și șterge o înregistrare, pur și simplu rulați următoarele comenzi:

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

Pentru a șterge o înregistrare și mai multe înregistrări, se execută comenzile:

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

Rețineți că parametrii distrugerii sunt doar chei primare, spre deosebire de metoda de ștergere care poate accepta orice coloană a bazei de date.

Pentru a găsi și șterge toți studenții de peste nivelul 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Buletin informativ de inovare
Nu rata cele mai importante știri despre inovație. Înscrieți-vă pentru a le primi pe e-mail.

Articole recente

Veeam oferă cel mai complet suport pentru ransomware, de la protecție la răspuns și recuperare

Coveware de la Veeam va continua să ofere servicii de răspuns la incidente de extorcare cibernetică. Coveware va oferi capacități criminalistice și de remediere...

Aprilie 23 2024

Revoluția verde și digitală: cum întreținerea predictivă transformă industria petrolului și gazelor

Întreținerea predictivă revoluționează sectorul petrolului și gazelor, cu o abordare inovatoare și proactivă a managementului uzinelor...

Aprilie 22 2024

Autoritatea de reglementare antitrust din Marea Britanie ridică alarma BigTech cu privire la GenAI

CMA din Marea Britanie a emis un avertisment cu privire la comportamentul Big Tech pe piața inteligenței artificiale. Acolo…

Aprilie 18 2024

Casa Green: revoluție energetică pentru un viitor durabil în Italia

Decretul „Case verzi”, formulat de Uniunea Europeană pentru creșterea eficienței energetice a clădirilor, și-a încheiat procesul legislativ cu...

Aprilie 18 2024