Artikler

Hvad er Laravel Eloquent, hvordan man bruger det, tutorial med eksempler

Laravel PHP-rammeværket inkluderer Eloquent Object Relational Mapper (ORM), som giver en ekstrem nem måde at kommunikere med en database på. 

Laravel og Eloquent hjælper med at fremskynde udviklingen af ​​applikationer og platforme, hvilket giver en passende løsning på de fleste problemer. Kravene imødekommes med hurtigere udvikling samt velorganiseret, genbrugelig, vedligeholdelig og skalerbar kode. 

Hvordan Eloquent virker

Udviklere kan arbejde i Eloquent med flere databaser effektivt ved hjælp af en ActiveMethod-implementering. Det er et arkitektonisk mønster, hvor modellen skabt i Model-View-Controller (MVC) strukturen svarer til en tabel i databasen. Fordelen er, at modellerne udfører almindelige databaseoperationer uden at kode lange SQL-forespørgsler. Skabeloner giver dig mulighed for at forespørge data i tabeller og indsætte nye poster i tabeller. Processen med at synkronisere flere databaser, der kører på forskellige systemer, er forenklet. Du behøver ikke at skrive SQL-forespørgsler. Det eneste du skal gøre er defiAfslut databasetabellerne og relationerne mellem dem, og Eloquent vil gøre resten af ​​arbejdet.

Laravel forberedelse

At værdsætte nytten af ​​Eloquent ORM og forstå økosystemet er et must. Trin for at komme i gang:

  1. Installer Laravel fra getcomposer.org, for at gøre dette følg instruktionerne her
  2. Creation migration ved hjælp af konsollen Artisan
  3. Opret skabeloner eloquent
  4. køre i seed af databasen

Artisan Console er navnet på kommandolinjegrænsefladen inkluderet i Laravel. Giver et sæt nyttige kommandoer til brug, mens du udvikler din applikation. Det er drevet af den kraftfulde komponent Symfony Console.

For at se en liste over alle tilgængelige Artisan-kommandoer kan du bruge listekommandoen:

php artisan list

Alle kommandoer kommer med en kortfattet beskrivelse af dens argumenter og muligheder. Dette vises i en "hjælp"-skærm. For at vise en hjælpeskærm skal du blot foran kommandonavnet med "hjælp" som vist:

php artisan help migrate

Migration

Migration er en databasestyringsproces ved at skrive PHP i stedet for SQL. Giver en måde at tilføje versionskontrol til databasen. 

For at oprette en migrering skal du blot køre følgende kommando:

php artisan make:migration create_student_records

Dette opretter migrationsfilen. I din teksteditor skal du åbne den fil, du lige har oprettet 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: op og ned. Op-metoden bør foretage ændringer i databasen; så hver gang du migrerer din database, vil enhver kode i op-metoden blive udført. På den anden side bør ned-metoden rulle disse databaseændringer tilbage; så hver gang du kører rollback af migration, skal ned-metoden fortryde, hvad op-metoden gjorde. Inde i metoden up der er skemabyggeren, der bruges til at oprette og manipulere tabellerne. Hvad sker der, hvis du annullerer nogle af dine migreringer? Alt du skal gøre er at implementere følgende kommando:

php artisan migrate:rollback

Og han vil samle den sidste migration som er gennemført. Du kan også gendanne databasen fuldstændigt ved at køre:

php artisan migrate:reset

Dette vil annullere alle dine migreringer.

Defition af modeller af Eloquent

Når databasemigreringen er fuldført, er den næste proces seedingEloquent kommer i spil siden seeding indsætter poster i vores database. Så du bliver nødt til at oprette skabelonerne, før du udfylder databasen. Hver databasetabel har en tilsvarende model, som bruges til at interagere med den tabel. Skabeloner giver dig mulighed for at forespørge dataene i dine tabeller, samt indsætte nye poster i tabellen. Den nemmeste måde at instansiere modellen på er at bruge følgende kommando:

php artisan make:model Student
Et eksempel på en skabelon er vist nedenfor Student, som kan bruges til at hente og gemme information fra vores elevs databasetabel:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Når du genererer en model og samtidig vil generere en databasemigrering, kan du bruge muligheden –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

såmaskiner

Overordnede seeders er et særligt sæt klasser, der giver os mulighed for at udfylde vores database igen og igen med nøjagtig de samme data. Vi implementerer følgende kommando:

php artisan make:seeder StudentsRecordSeeder

I teksteditoren, under frø-mappen, skal du åbne den nyoprettede fil med filnavn: StudentsRecordSeeder.php. Som du kan se er dette bare en meget simpel klasse med en enkelt metode kaldet run().

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Koden er blot en indpakning omkring en konsolkommandoklasse, specielt bygget til at hjælpe med opgaven seeding. Rediger koden, og gem den derefter.

Nyhedsbrev om innovation
Gå ikke glip af de vigtigste nyheder om innovation. Tilmeld dig for at modtage dem via e-mail.
public function run()
{
    echo 'Seeding!';
}

Og går til terminalen:

php artisan db:seed --class=StudentsRecordSeeder

Nu kan du udfylde tabellen med nogle poster og køre:

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

Her kan du blive ved med at slette, tilføje, ændre poster i DB og derefter gendanne dem med en simpel kommando.

CRUD med Laravel Eloquent

CRUD-operationer med Laravel Eloquent object-relational mapper (ORM) gør det lettere for Laravel-udviklere at arbejde med flere databaser. Den udfører oprettelse, læsning, opdatering og sletning (CRUD) operationer og kortlægger objektmodeller til databasetabeller. Håndterer alle databaseinteraktioner, der kræves til CRUD-operationer.

Oprettelse af optegnelser

Du kan bruge metoden ::create til at indsætte en ny post i databasen.

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

Ud over den enkle oprettelsesmetode vist ovenfor, kan du også oprette et nyt objekt og give det forskellige attributter. Derefter kan du kalde funktionen save() og køre koden. Metoder som firstOrCreate() eller firstOrNew() er andre muligheder for at oprette poster. Disse vil give dig mulighed for at finde en elev med visse egenskaber; hvis den pågældende elev ikke findes, vil du enten oprette den i databasen eller instansiere en ny instans.

Læsning af optegnelser

Ved hjælp af Eloquent ORM kan du finde poster i din database. Forespørgslerne er enkelt opbygget og tilbyder et jævnt flow. Sådan oprettes udsagn::where, vil du bruge metoderne get() Og first(). Metoden first() vil kun returnere én post, mens metoden get() returnerer en række poster, der kan sløjfes. Også metoden find() kan bruges med en række primære nøgler, som vil returnere en samling af matchende poster. Her er nogle eksempler:

$student = Students::all();

Denne kode får alle elever. Mens følgende kode finder en specifik elev efter ID:

$student = Studerende::find(1);

Som vist nedenfor beskriver koden også søgning efter en elev baseret på en specifik egenskab.

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

For get()-metoden viser denne kode, hvordan man finder en elev med et niveau over 5.

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

At opdatere poster ved hjælp af Eloquent er lige så nemt. For at opdatere en post skal du bare finde den post, du vil opdatere, redigere attributterne og gemme. For at ændre karakterniveauet for John Does elev til 5, skal du først finde eleven og derefter udføre gem-metoden.

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

Gem-metoden kan også bruges til at opdatere modeller, der allerede findes i databasen.

Slet poster

Veltalende kan prale af sin nemme proces til opdatering af rekorder, men den har den samme historie med sletning. Der er to muligheder: trække poster ud og udføre slettemetoden, eller blot bruge ødelæggemetoden. For at finde og slette en post skal du blot køre følgende kommandoer:

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

For at slette en post og flere poster køres kommandoerne:

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

Bemærk, at parametrene for destroy kun er primære nøgler i modsætning til slettemetoden, som kan acceptere enhver databasekolonne.

For at finde og slette alle elever over niveau 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Nyhedsbrev om innovation
Gå ikke glip af de vigtigste nyheder om innovation. Tilmeld dig for at modtage dem via e-mail.

Seneste artikler

Veeam har den mest omfattende support til ransomware, fra beskyttelse til respons og gendannelse

Coveware by Veeam vil fortsætte med at levere responstjenester til cyberafpresning. Coveware vil tilbyde kriminaltekniske og afhjælpende funktioner...

23 April 2024

Grøn og digital revolution: Hvordan prædiktiv vedligeholdelse transformerer olie- og gasindustrien

Forudsigende vedligeholdelse revolutionerer olie- og gassektoren med en innovativ og proaktiv tilgang til anlægsstyring...

22 April 2024

Britisk antitrust-tilsynsmyndighed rejser BigTech-alarm over GenAI

Det britiske CMA har udsendt en advarsel om Big Techs adfærd på markedet for kunstig intelligens. Der…

18 April 2024

Casa Green: energirevolution for en bæredygtig fremtid i Italien

Dekretet om "grønne huse", der er formuleret af Den Europæiske Union for at øge bygningers energieffektivitet, har afsluttet sin lovgivningsproces med...

18 April 2024