artikels

Wat is Laravel Eloquent, hoe't jo it brûke, tutorial mei foarbylden

It Laravel PHP-ramt omfettet Eloquent Object Relational Mapper (ORM), dy't in ekstreem maklike manier biedt om te kommunisearjen mei in database. 

Laravel en Eloquent helpe tapassing en platfoarmûntwikkeling te fersnellen, en jouwe in adekwate oplossing foar de measte problemen. Easken wurde oanpakt mei rapper ûntwikkeling, lykas goed organisearre, werbrûkbere, ûnderhâldbere en skalbere koade. 

Hoe Eloquent wurket

Untwikkelders kinne wurkje yn Eloquent mei meardere databases effisjint mei help fan in ActiveMethod ymplemintaasje. It is in arsjitektoanysk patroan dêr't it model makke yn de Model-View-Controller (MVC) struktuer oerienkomt mei in tabel yn de databank. It foardiel is dat de modellen mienskiplike databankoperaasjes útfiere sûnder lange SQL-fragen te kodearjen. Sjabloanen kinne jo gegevens yn tabellen opfreegje en nije records yn tabellen ynfoegje. It proses fan syngronisaasje fan meardere databases dy't rinne op ferskate systemen wurdt ferienfâldige. Jo hoege gjin SQL-fragen te skriuwen. Alles wat jo hoege te dwaan is defiFinish de databank tabellen en de relaasjes tusken harren, en Eloquent sil dwaan de rest fan it wurk.

Laravel tarieding

It nut fan Eloquent ORM wurdearje, en it ekosysteem begripe is in must. Stappen om te begjinnen:

  1. Ynstallearje Laravel fan getcomposer.org, om dit te dwaan folgje de ynstruksjes hjir
  2. Meitsje migration mei help fan de konsole Artisan
  3. Meitsje sjabloanen eloquent
  4. run i seed fan de databank

Artisan Console is de namme fan de kommandorigelynterface opnommen yn Laravel. Biedt in set nuttige kommando's om te brûken by it ûntwikkeljen fan jo applikaasje. It wurdt dreaun troch de krêftige komponint Symfony Console.

Om in list te sjen fan alle beskikbere Artisan-kommando's, kinne jo it listkommando brûke:

php artisan list

Alle kommando's komme mei in koarte beskriuwing fan syn arguminten en opsjes. Dit wurdt werjûn yn in "help" skerm. Om in helpskerm te werjaan, gean gewoan de kommandonamme foar mei "help" lykas werjûn:

php artisan help migrate

Migration

Migraasje is in databankbehearproses troch it skriuwen fan PHP ynstee SQL. Biedt in manier om ferzjekontrôle ta te foegjen oan de databank. 

Om in migraasje te meitsjen, útfiere gewoan it folgjende kommando:

php artisan make:migration create_student_records

Dit makket it migraasjebestân oan. Iepenje yn jo tekstbewurker it bestân dat jo krekt makke hawwe yn 'e map 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 koade is in klasse mei deselde namme 'create student records', en hat twa metoaden: op en del. De up-metoade moat wizigingen meitsje oan 'e databank; dus as jo jo databank migrearje, sil elke koade yn 'e up-metoade wurde útfierd. Oan 'e oare kant moat de delmetoade dy databankwizigingen weromdraaie; dus as jo rinne de rollback fan migration, de down-metoade moat ûngedien meitsje wat de up-metoade dien hat. Binnen de metoade up d'r is de skemabouwer dy't brûkt wurdt om de tabellen te meitsjen en te manipulearjen. Wat bart der as jo guon fan jo migraasjes annulearje? Alles wat jo hoege te dwaan is it folgjende kommando ymplementearje:

php artisan migrate:rollback

En hy sil de lêste sammelje migration dy't útfierd is. Jo kinne ek de databank folslein weromsette troch te rinnen:

php artisan migrate:reset

Dit sil al jo migraasjes annulearje.

Definaasje fan modellen Eloquent

Nei't de databankmigraasje foltôge is, is it folgjende proses de seedingEloquent komt yn toanielstik sûnt de seeding is it ynfoegjen fan records yn ús databank. Dat jo moatte de sjabloanen oanmeitsje foardat jo de databank ynfolje. Elke databanktabel hat in oerienkommende model dat wurdt brûkt om mei dy tabel te ynteraksje. Sjabloanen kinne jo de gegevens yn jo tabellen freegje, en ek nije records yn 'e tabel ynfoegje. De maklikste manier om it model te instantiearjen is it folgjende kommando te brûken:

php artisan make:model Student
In foarbyld fan in sjabloan wurdt hjirûnder werjûn Student, dy't kin wurde brûkt om ynformaasje op te heljen en te bewarjen fan 'e databanktabel fan ús studint:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

As jo ​​​​in model generearje en tagelyk in databankmigraasje wolle generearje, kinne jo de opsje brûke –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Seeders

Algemiene seeders binne in spesjale set fan klassen dy't ús tastean ús database hieltyd wer te befolkjen mei krekt deselde gegevens. Wy implementearje it folgjende kommando:

php artisan make:seeder StudentsRecordSeeder

Iepenje yn 'e tekstbewurker, ûnder de map seeds, it nij oanmakke bestân mei bestânsnamme: StudentsRecordSeeder.php. Sa't jo sjen kinne, dit is gewoan in hiel ienfâldige klasse mei in inkele metoade neamd run().

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

De koade is mar in wrapper om in konsole kommando klasse, spesifyk boud foar in help mei de taak fan seeding. Bewurkje de koade en bewarje it dan.

Ynnovaasje nijsbrief
Mis it wichtichste nijs oer ynnovaasje net. Meld jo oan om se fia e-post te ûntfangen.
public function run()
{
    echo 'Seeding!';
}

En gean nei de terminal:

php artisan db:seed --class=StudentsRecordSeeder

No kinne jo de tabel ynfolje mei guon yngongen en útfiere:

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

Hjir kinne jo yngongen yn 'e DB wiskje, tafoegje, wizigje, en se dan weromsette mei in ienfâldich kommando.

CRUD mei Laravel Eloquent

CRUD-operaasjes mei Laravel Eloquent object-relational mapper (ORM) meitsje it makliker foar Laravel-ûntwikkelders om mei meardere databases te wurkjen. It fiert operaasjes oanmeitsje, lêze, aktualisearje en wiskje (CRUD), en objektmodellen yn kaart bringt nei databasetabellen. Behannelt alle databank ynteraksjes nedich foar CRUD operaasjes.

Oanmeitsjen fan records

Jo kinne de metoade :: meitsje brûke om in nij record yn de databank yn te foegjen.

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

Neist de ienfâldige oanmeitsjen metoade werjûn hjirboppe, kinne jo ek meitsje in nij foarwerp en jou it ferskillende attributen. Dan kinne jo de funksje bewarje () neame en de koade útfiere. Metoaden lykas firstOrCreate()o firstOrNew() binne oare opsjes foar it meitsjen fan records. Hjirmei kinne jo in studint fine mei bepaalde attributen; as dy studint net fûn wurdt, sille jo it oanmeitsje yn 'e databank of in nije eksimplaar ynstantearje.

Lêze records

Mei help fan Eloquent ORM kinne jo records fine yn jo database. De fragen binne gewoan konstruearre en biede in soepele stream. Om útspraken te meitsjen ::where, jo sille de metoaden brûke get() En first(). De metoade first() sil mar ien rekord weromkomme, wylst de metoade get() sil in loopbere array fan records werombringe. Ek de metoade find() kin brûkt wurde mei in array fan primêre kaaien, dy't in samling oerienkommende records werombringe. Hjir binne wat foarbylden:

$student = Students::all();

Dizze koade krijt alle studinten. Wylst de folgjende koade in spesifike studint fynt troch ID:

$student = Studinten::find(1);

Ek, lykas hjirûnder werjûn, beskriuwt de koade it sykjen nei in studint basearre op in spesifyk attribút.

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

Foar de get() metoade lit dizze koade sjen hoe't jo in studint fine kinne mei in nivo boppe 5.

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

It bywurkjen fan records mei Eloquent is krekt sa ienfâldich. Om in rekord te aktualisearjen, fine jo gewoan it rekord dat jo wolle bywurkje, bewurkje de attributen en bewarje. Bygelyks, om it klassenivo fan John Doe's studint te feroarjen nei 5, fyn earst de studint en fier dan de opslachmetoade út.

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

De opslachmetoade kin ek brûkt wurde om modellen te aktualisearjen dy't al yn 'e databank besteane.

Wiskje records

Eloquent hat syn maklike proses foar it bywurkjen fan records, mar it hat itselde ferhaal mei wiskjen. D'r binne twa opsjes: records útlûke en de wiskjemetoade útfiere, of gewoan de ferneatigjemetoade brûke. Om in record te finen en te wiskjen, útfiere gewoan de folgjende kommando's:

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

Om in record en meardere records te wiskjen, wurde de kommando's útfierd:

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

Tink derom dat de parameters fan ferneatigje allinich primêre kaaien binne yn tsjinstelling ta de wiskjemetoade dy't elke databasekolom akseptearje kin.

Om alle learlingen boppe nivo 10 te finen en te wiskjen.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Ynnovaasje nijsbrief
Mis it wichtichste nijs oer ynnovaasje net. Meld jo oan om se fia e-post te ûntfangen.

Recent articles

Ynnovative yntervinsje yn Augmented Reality, mei in Apple-sjogger by de Catania Polyclinic

In ophthalmoplasty-operaasje mei de Apple Vision Pro kommersjele werjouwer waard útfierd by de Catania Polyclinic ...

3 mei 2024

De foardielen fan kleurplaten foar bern - in wrâld fan magy foar alle leeftiden

It ûntwikkeljen fan fynmotoryske feardigens troch kleurjen taret bern op mear komplekse feardigens lykas skriuwen. Kleurje...

2 mei 2024

De takomst is hjir: hoe't de skipfeartsektor de wrâldekonomy revolúsjonearret

De marinesektor is in wiere wrâldwide ekonomyske macht, dy't navigearre is nei in merk fan 150 miljard ...

1 mei 2024

Utjouwers en OpenAI tekenje oerienkomsten om de stream fan ynformaasje te regeljen ferwurke troch Artificial Intelligence

Ofrûne moandei kundige de Financial Times in deal oan mei OpenAI. FT lisinsje har sjoernalistyk fan wrâldklasse ...

30 april 2024