Artikler

Hva er Laravel Eloquent, hvordan du bruker det, opplæring med eksempler

Laravel PHP-rammeverket inkluderer Eloquent Object Relational Mapper (ORM), som gir en ekstremt enkel måte å kommunisere med en database. 

Laravel og Eloquent hjelper til med å fremskynde applikasjons- og plattformutvikling, og gir en tilstrekkelig løsning på de fleste problemer. Kravene ivaretas med raskere utvikling, samt velorganisert, gjenbrukbar, vedlikeholdbar og skalerbar kode. 

Hvordan Eloquent fungerer

Utviklere kan jobbe i Eloquent med flere databaser effektivt ved å bruke en ActiveMethod-implementering. Det er et arkitektonisk mønster der modellen opprettet i Model-View-Controller (MVC)-strukturen tilsvarer en tabell i databasen. Fordelen er at modellene utfører vanlige databaseoperasjoner uten å kode lange SQL-spørringer. Maler lar deg spørre etter data i tabeller og sette inn nye poster i tabeller. Prosessen med å synkronisere flere databaser som kjører på forskjellige systemer er forenklet. Du trenger ikke skrive SQL-spørringer. Alt du trenger å gjøre er defiFullfør databasetabellene og relasjonene mellom dem, og Eloquent vil gjøre resten av arbeidet.

Laravel forberedelse

Å sette pris på nytten av Eloquent ORM, og forstå økosystemet er et must. Trinn for å komme i gang:

  1. Installer Laravel fra getcomposer.org, for å gjøre dette følg instruksjonene her
  2. opprettelse migration ved å bruke konsollen Artisan
  3. Lag maler eloquent
  4. løp i seed av databasen

Artisan Console er navnet på kommandolinjegrensesnittet som er inkludert i Laravel. Gir et sett med nyttige kommandoer du kan bruke mens du utvikler applikasjonen. Den drives av den kraftige komponenten Symfony Console.

For å se en liste over alle tilgjengelige Artisan-kommandoer, kan du bruke listekommandoen:

php artisan list

Alle kommandoer kommer med en kortfattet beskrivelse av argumentene og alternativene. Dette vises i en "hjelp"-skjerm. For å vise et hjelpeskjermbilde, gå rett foran kommandonavnet med "hjelp" som vist:

php artisan help migrate

Migration

Migrering er en databasebehandlingsprosess ved å skrive PHP i stedet SQL. Gir en måte å legge til versjonskontroll til databasen. 

For å opprette en migrering, kjør bare følgende kommando:

php artisan make:migration create_student_records

Dette oppretter migreringsfilen. I tekstredigeringsprogrammet åpner du filen du nettopp opprettet i mappen 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');
    }
}

Koden er en klasse med samme navn 'create student records', og har to metoder: opp og ned. Opp-metoden bør gjøre endringer i databasen; så hver gang du migrerer databasen, vil enhver kode i opp-metoden bli utført. På den annen side bør ned-metoden rulle tilbake disse databaseendringene; så når du kjører rollback av migration, bør ned-metoden angre det opp-metoden gjorde. Inne i metoden up det er skjemabyggeren som brukes til å lage og manipulere tabellene. Hva skjer hvis du avbryter noen av overføringene dine? Alt du trenger å gjøre er å implementere følgende kommando:

php artisan migrate:rollback

Og han skal samle den siste migration som er implementert. Du kan også gjenopprette databasen fullstendig ved å kjøre:

php artisan migrate:reset

Dette vil avbryte alle overføringene dine.

Defisjon av modeller av Eloquent

Etter at databasemigreringen er fullført, er neste prosess seedingEloquent kommer inn siden seeding setter inn poster i databasen vår. Så du må lage malene før du fyller ut databasen. Hver databasetabell har en tilsvarende modell som brukes til å samhandle med den tabellen. Maler lar deg spørre etter dataene i tabellene dine, samt sette inn nye poster i tabellen. Den enkleste måten å instansiere modellen på er å bruke følgende kommando:

php artisan make:model Student
Et eksempel på en mal er vist nedenfor Student, som kan brukes til å hente og lagre informasjon fra studentens databasetabell:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Når du genererer en modell og samtidig ønsker å generere en databasemigrering, kan du bruke alternativet –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Såmaskiner

Generelle seeders er et spesielt sett med klasser som lar oss fylle databasen vår om og om igjen med nøyaktig samme data. Vi implementerer følgende kommando:

php artisan make:seeder StudentsRecordSeeder

I tekstredigeringsprogrammet, under frø-mappen, åpner du den nyopprettede filen med filnavn: StudentsRecordSeeder.php. Som du kan se, er dette bare en veldig enkel klasse med en enkelt metode kalt run🇧🇷

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Koden er bare en innpakning rundt en konsollkommandoklasse, spesielt bygget for å hjelpe med oppgaven seeding. Rediger koden og lagre den.

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.
public function run()
{
    echo 'Seeding!';
}

Og går til terminalen:

php artisan db:seed --class=StudentsRecordSeeder

Nå kan du fylle tabellen med noen oppføringer og kjøre:

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

Her kan du fortsette å slette, legge til, endre oppføringer i DB, og deretter gjenopprette dem med en enkel kommando.

CRUD med Laravel Eloquent

CRUD-operasjoner med Laravel Eloquent object-relational mapper (ORM) gjør det enklere for Laravel-utviklere å jobbe med flere databaser. Den utfører opprettelse, lesing, oppdatering og sletting (CRUD) operasjoner, og tilordner objektmodeller til databasetabeller. Håndterer alle databaseinteraksjoner som kreves for CRUD-operasjoner.

Oppretting av poster

Du kan bruke metoden ::create for å sette inn en ny post i databasen.

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

I tillegg til den enkle opprettingsmetoden vist ovenfor, kan du også lage et nytt objekt og gi det forskjellige attributter. Deretter kan du kalle opp save()-funksjonen og kjøre koden. Metoder som firstOrCreate() eller firstOrNew() er andre alternativer for å lage poster. Disse vil tillate deg å finne en student med visse attributter; hvis den studenten ikke blir funnet, vil du opprette den i databasen eller instansiere en ny forekomst.

Lese poster

Ved å bruke Eloquent ORM kan du finne poster i databasen din. Spørringene er enkelt konstruert og tilbyr en jevn flyt. For å lage utsagn::where, vil du bruke metodene get() Og first(). Metoden first() vil bare returnere én post, mens metoden get() vil returnere en sløyfebar rekke poster. Også metoden find() kan brukes med en rekke primærnøkler, som vil returnere en samling av samsvarende poster. Her er noen eksempler:

$student = Students::all();

Denne koden får alle elever. Mens følgende kode finner en spesifikk student etter ID:

$student = Studenter::finn(1);

Også, som vist nedenfor, beskriver koden søk etter en student basert på en bestemt egenskap.

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

For get()-metoden viser denne koden hvordan du finner en student med et nivå over 5.

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

Å oppdatere poster med Eloquent er like enkelt. For å oppdatere en post, finn bare posten du vil oppdatere, rediger attributtene og lagre. For å endre karakternivået til John Does elev til 5, finn først eleven og utfør deretter lagringsmetoden.

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

Lagringsmetoden kan også brukes til å oppdatere modeller som allerede finnes i databasen.

Slett poster

Veltalende skryter av sin enkle oppdateringsprosess, men den har den samme historien med sletting. Det er to alternativer: trekke ut poster og utfør slettemetoden, eller ganske enkelt bruk ødeleggemetoden. For å finne og slette en post, kjør bare følgende kommandoer:

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

For å slette en post og flere poster, kjøres kommandoene:

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

Legg merke til at parametrene for destroy bare er primærnøkler i motsetning til slettemetoden som kan akseptere hvilken som helst databasekolonne.

For å finne og slette alle elever over nivå 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.

Siste artikler

Utgivere og OpenAI signerer avtaler for å regulere flyten av informasjon som behandles av kunstig intelligens

Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...

30 april 2024

Nettbetalinger: Her er hvordan strømmetjenester får deg til å betale for alltid

Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...

29 april 2024

Veeam har den mest omfattende støtten for løsepengevare, fra beskyttelse til respons og gjenoppretting

Coveware by Veeam vil fortsette å tilby responstjenester for cyberutpressing. Coveware vil tilby kriminaltekniske og utbedringsmuligheter...

23 april 2024

Grønn og digital revolusjon: Hvordan prediktivt vedlikehold transformerer olje- og gassindustrien

Prediktivt vedlikehold revolusjonerer olje- og gasssektoren, med en innovativ og proaktiv tilnærming til anleggsledelse...

22 april 2024