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.
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.
At værdsætte nytten af Eloquent ORM og forstå økosystemet er et must. Trin for at komme i gang:
migration
ved hjælp af konsollen Artisan
eloquent
seed
af databasenArtisan 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.
Eloquent
Når databasemigreringen er fuldført, er den næste proces seeding
. Eloquent
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
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.
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-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.
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.
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();
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.
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
Coveware by Veeam vil fortsætte med at levere responstjenester til cyberafpresning. Coveware vil tilbyde kriminaltekniske og afhjælpende funktioner...
Forudsigende vedligeholdelse revolutionerer olie- og gassektoren med en innovativ og proaktiv tilgang til anlægsstyring...
Det britiske CMA har udsendt en advarsel om Big Techs adfærd på markedet for kunstig intelligens. Der…
Dekretet om "grønne huse", der er formuleret af Den Europæiske Union for at øge bygningers energieffektivitet, har afsluttet sin lovgivningsproces med...