Artikelen

Wat ass Laravel Eloquent, wéi et ze benotzen, Tutorial mat Beispiller

De Laravel PHP Kader enthält Eloquent Object Relational Mapper (ORM), deen en extrem einfache Wee bitt fir mat enger Datebank ze kommunizéieren. 

Laravel an Eloquent hëllefen d'Applikatioun an d'Plattformentwécklung ze beschleunegen, fir eng adäquat Léisung fir déi meescht Probleemer ze bidden. Ufuerderunge gi mat méi séier Entwécklung adresséiert, souwéi gutt organiséiert, wiederverwendbar, erhalebar a skalierbar Code. 

Wéi Eloquent Wierker

Entwéckler kënne schaffen an Eloquent mat multiple Datenbanken effizient mat enger ActiveMethod Implementatioun. Et ass en architektonescht Muster wou de Modell erstallt an der Model-View-Controller (MVC) Struktur entsprécht enger Tabell an der Datebank. De Virdeel ass datt d'Modeller allgemeng Datebankoperatioune maachen ouni laang SQL Ufroen ze codéieren. Schabloune erlaaben Iech Daten an Tabellen ze froen an nei Opzeechnungen an Dëscher anzeginn. De Prozess fir verschidde Datenbanken ze synchroniséieren, déi op verschiddene Systemer lafen, gëtt vereinfacht. Dir braucht keng SQL Ufroen ze schreiwen. Alles wat Dir maache musst ass defiFäerdeg d'Datebank Dëscher an d'Relatiounen tëscht hinnen, an Eloquent wäert de Rescht vun der Aarbecht maachen.

Laravel Virbereedung

D'Utilitéit vun Eloquent ORM ze schätzen, an den Ökosystem ze verstoen ass e Must. Schrëtt fir unzefänken:

  1. Installéiert Laravel vun getcomposer.org, fir dëst ze maachen, befollegt d'Instruktioune hei
  2. Schafen migration d'Konsole benotzen Artisan
  3. Schablounen erstellen eloquent
  4. renn i seed vun der Datebank

Artisan Console ass den Numm vun der Kommandozeil-Interface a Laravel abegraff. Bitt eng Rei vun nëtzlechen Kommandoen fir ze benotzen wärend Dir Är Applikatioun entwéckelt. Et gëtt duerch de mächtege Komponent gedriwwen Symfony Console.

Fir eng Lëscht vun all verfügbaren Artisan Kommandoen ze gesinn, kënnt Dir de Kommando Lëscht benotzen:

php artisan list

All Kommandoe kommen mat enger präzis Beschreiwung vu sengen Argumenter an Optiounen. Dëst gëtt an engem "Hëllef" Écran gewisen. Fir en Hëllefsbildschierm ze weisen, gitt einfach de Kommandonumm mat "Hëllef" vir wéi et ugewise gëtt:

php artisan help migrate

Migration

Migratioun ass en Datebankmanagementprozess andeems Dir PHP amplaz schreift SQL. Bitt e Wee fir Versiounskontroll an d'Datebank ze addéieren. 

Fir eng Migratioun ze kreéieren, fuert just de folgende Kommando:

php artisan make:migration create_student_records

Dëst erstellt d'Migratiounsdatei. An Ärem Texteditor, öffnen d'Datei déi Dir just am Dossier erstallt hutt 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');
    }
}

De Code ass eng Klass mam selwechten Numm 'create student records', an huet zwou Methoden: erop an erof. D'up Method soll Ännerungen un der Datebank maachen; also wann Dir Är Datebank migréiert, gëtt all Code an der Up Method ausgefouert. Op der anerer Säit soll d'Down-Methode dës Datebank Ännerungen zréckrollen; also wann Dir lafen der rollback della migration, d'Down-Methode soll réckgängeg maachen wat d'Up-Methode gemaach huet. Bannen an der Method up et gëtt de Schema Builder benotzt fir d'Dëscher ze kreéieren an ze manipuléieren. Wat geschitt wann Dir e puer vun Äre Migratiounen annuléiert? Alles wat Dir maache musst ass de folgende Kommando ëmzesetzen:

php artisan migrate:rollback

An hie wäert déi lescht sammelen migration déi ëmgesat gouf. Och kënnt Dir d'Datebank komplett restauréieren andeems Dir leeft:

php artisan migrate:reset

Dëst wäert all Är Migratiounen annuléieren.

Defition vun Modeller vun Eloquent

Nodeems d'Datebankmigratioun fäerdeg ass, ass de nächste Prozess den seedingEloquent kënnt zënter dem seeding setzt records an eiser Datebank op. Also musst Dir Schabloune erstellen ier Dir d'Datebank populéiert. All Datebanktabell huet e entspriechende Modell dee benotzt gëtt fir mat där Tabell ze interagéieren. Schabloune erlaaben Iech d'Donnéeën an Ären Dëscher ze froen, souwéi nei Opzeechnungen an d'Tabell setzen. Deen einfachste Wee fir de Modell z'instantiéieren ass de folgende Kommando ze benotzen:

php artisan make:model Student
E Beispill vun enger Schabloun gëtt hei ënnen gewisen Student, déi benotzt ka ginn fir Informatioun aus der Datebank vun eisem Student ze recuperéieren an ze späicheren:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Wann Dir e Modell generéiert a gläichzäiteg wëllt Dir eng Datebankmigratioun generéieren, kënnt Dir d'Optioun benotzen –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Séien

Allgemeng Seeders sinn e spezielle Set vu Klassen, déi et eis erlaben eis Datebank ëmmer erëm mat de genaue selwechten Donnéeën ze populéieren. Mir implementéieren de folgende Kommando:

php artisan make:seeder StudentsRecordSeeder

Am Texteditor, ënner dem Somen Dossier, öffnen déi nei erstallt Datei mam Dateinumm: StudentsRecordSeeder.php. Wéi Dir kënnt gesinn ass dëst just eng ganz einfach Klass mat enger eenzeger Method genannt run,

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

De Code ass just e Wrapper ronderëm eng Konsol Kommando Klass, speziell gebaut fir mat der Aufgab ze hëllefen seeding. Ännert de Code a späichert et dann.

Innovatioun Newsletter
Verpasst net déi wichtegst Neiegkeeten iwwer Innovatioun. Registréiert Iech fir se per E-Mail ze kréien.
public function run()
{
    echo 'Seeding!';
}

A gitt op den Terminal:

php artisan db:seed --class=StudentsRecordSeeder

Elo kënnt Dir den Dësch mat e puer Entréen populéieren a lafen:

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

Hei kënnt Dir weider Elementer an der DB läschen, addéieren, änneren, a se dann mat engem einfachen Kommando restauréieren.

CRUD mat Laravel Eloquent

CRUD Operatiounen mat Laravel Eloquent Object-Relational Mapper (ORM) maachen et méi einfach fir Laravel Entwéckler mat méi Datenbanken ze schaffen. Et mécht Operatiounen erstellen, liesen, aktualiséieren a läschen (CRUD), a kartéiert Objektmodeller op Datebanktabellen. Handhabt all Datebank Interaktiounen déi fir CRUD Operatiounen erfuerderlech sinn.

Schafung vun records

Dir kënnt d':: erstellen Method benotze fir en neie Rekord an d'Datebank anzeginn.

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

Zousätzlech zu der einfacher Kreatiounsmethod hei uewen, kënnt Dir och en neien Objet erstellen an et verschidden Attributer ginn. Da kënnt Dir d'Späicheren () Funktioun ruffen an de Code lafen. Methode wéi firstOrCreate() oder firstOrNew() sinn aner Optiounen fir Rekorder ze kreéieren. Dëst erlaabt Iech e Student mat bestëmmten Attributer ze fannen; wann dee Student net fonnt gëtt, erstellt Dir en an der Datebank oder instantiéiert eng nei Instanz.

Liesen records

Mat Eloquent ORM kënnt Dir records an Ärer Datebank fannen. D'Ufroe sinn einfach konstruéiert a bidden e glate Flow. Aussoen erstellen::where, Dir wäert d'Methoden benotzen get() An first(). D'Method first() gëtt nëmmen ee Rekord zréck, iwwerdeems d'Method get() gëtt e loopablen Array vun Opzeechnungen zréck. Och d'Method find() ka mat enger Rei vu primäre Schlësselen benotzt ginn, déi eng Sammlung vu passenden records zréckginn. Hei sinn e puer Beispiller:

$student = Students::all();

Dëse Code kritt all Studenten. Wärend de folgende Code e spezifesche Student duerch ID fënnt:

$student = Studenten::find(1);

Och, wéi hei ënnendrënner, beschreift de Code d'Sich no engem Student baséiert op engem spezifeschen Attribut.

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

Fir d'get () Method weist dëse Code wéi een e Student mat engem Niveau iwwer 5 fënnt.

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

Aktualiséierung vun records mat Eloquent ass grad esou einfach. Fir e Rekord ze aktualiséieren, fannt Dir just de Rekord deen Dir wëllt aktualiséieren, ännert d'Attributer a späichert. Zum Beispill, fir de Gradniveau vum John Doe säi Student op 5 z'änneren, fanne fir d'éischt de Student an ausféiert dann d'Späichermethod.

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

D'Späichermethod kann och benotzt ginn fir Modeller ze aktualiséieren déi schonn an der Datebank existéieren.

Läschen records

Eloquent boasts vu sengem einfache Rekordaktualiséierungsprozess, awer et huet déiselwecht Geschicht mat Läschen. Et ginn zwou Optiounen: Pull-out records an ausféieren d'Läschmethod, oder benotzt einfach d'Zerstéierungsmethod. Fir e Rekord ze fannen an ze läschen, fuert einfach déi folgend Kommandoen:

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

Fir e Rekord a verschidde Rekorder ze läschen, ginn d'Befehle lafen:

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

Notéiert datt d'Parameter vun der Zerstéierung nëmme primär Schlësselen sinn am Géigesaz zu der Läschenmethod déi all Datebankkolonne akzeptéiere kann.

Fir all Studenten iwwer Niveau 10 ze fannen an ze läschen.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Innovatioun Newsletter
Verpasst net déi wichtegst Neiegkeeten iwwer Innovatioun. Registréiert Iech fir se per E-Mail ze kréien.

Recent Artikelen

Verëffentlecher an OpenAI ënnerschreiwen Ofkommes fir de Flux vun Informatioun ze regléieren, déi vu Kënschtlech Intelligenz veraarbecht gëtt

De leschte Méindeg huet d'Financial Times en Deal mat OpenAI ugekënnegt. FT lizenzéiert säi Weltklass Journalismus ...

30 Abrëll 2024

Online Bezuelungen: Hei ass wéi Streaming Servicer Iech fir ëmmer bezuelen

Millioune vu Leit bezuelen fir Streaming Servicer, a bezuelen monatlecht Abonnementskäschte. Et ass allgemeng Meenung datt Dir ...

29 Abrëll 2024

Veeam huet déi ëmfaassendst Ënnerstëtzung fir Ransomware, vu Schutz bis Äntwert an Erhuelung

Coveware vu Veeam wäert weider Cyber ​​Erpressung Tëschefall Äntwert Servicer ubidden. Coveware wäert Forensik a Sanéierungsfäegkeeten ubidden ...

23 Abrëll 2024

Gréng an Digital Revolutioun: Wéi Predictive Maintenance Transforméiert d'Ueleg- a Gasindustrie

Predictive Maintenance revolutionéiert den Ueleg- a Gassektor, mat enger innovativer a proaktiver Approche fir d'Planzemanagement.…

22 Abrëll 2024