Laravel in Eloquent pomagata pospešiti razvoj aplikacij in platform ter zagotavljata ustrezno rešitev za večino težav. Zahteve so obravnavane s hitrejšim razvojem, pa tudi z dobro organizirano kodo, ki jo je mogoče ponovno uporabiti, vzdrževati in razširljivo.
Razvijalci lahko delajo v Eloquent
z več bazami podatkov učinkovito z uporabo izvedbe ActiveMethod. Gre za arhitekturni vzorec, kjer model, ustvarjen v strukturi Model-View-Controller (MVC), ustreza tabeli v bazi podatkov. Prednost je, da modeli izvajajo običajne operacije baze podatkov brez kodiranja dolgih poizvedb SQL. Predloge vam omogočajo poizvedovanje po podatkih v tabelah in vstavljanje novih zapisov v tabele. Postopek sinhronizacije več baz podatkov, ki se izvajajo v različnih sistemih, je poenostavljen. Ni vam treba pisati poizvedb SQL. Vse kar morate storiti je defiDokončajte tabele baze podatkov in odnose med njimi, Eloquent pa bo opravil ostalo delo.
Ceniti uporabnost Eloquent ORM in razumeti ekosistem je nujno. Koraki za začetek:
migration
z uporabo konzole Artisan
eloquent
seed
baze podatkovArtisan Console
je ime vmesnika ukazne vrstice, vključenega v Laravel. Zagotavlja niz uporabnih ukazov za uporabo med razvijanjem vaše aplikacije. Poganja ga močna komponenta Symfony Console
.
Če si želite ogledati seznam vseh razpoložljivih ukazov Artisan, lahko uporabite ukaz list:
php artisan list
Vsi ukazi imajo jedrnat opis svojih argumentov in možnosti. To je prikazano na zaslonu "pomoč". Če želite prikazati zaslon s pomočjo, preprosto pred imenom ukaza vpišite »pomoč«, kot je prikazano:
php artisan help migrate
Migration
Migracija je postopek upravljanja baze podatkov z pisanjem PHP namesto tega SQL
. Ponuja način za dodajanje nadzora različic v bazo podatkov.
Če želite ustvariti selitev, samo zaženite naslednji ukaz:
php artisan make:migration create_student_records
S tem se ustvari datoteka za selitev. V urejevalniku besedil odprite datoteko, ki ste jo pravkar ustvarili v mapi 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');
}
}
Koda je razred z istim imenom 'create student records
', in ima dva načina: gor in dol. Up metoda bi morala spremeniti bazo podatkov; tako da se vsakič, ko preselite svojo bazo podatkov, izvede katera koli koda v metodi up. Po drugi strani pa bi morala metoda navzdol razveljaviti te spremembe baze podatkov; torej vsakič, ko zaženete rollback
od migration
, bi morala metoda navzdol razveljaviti, kar je storila metoda up. Znotraj metode up
obstaja graditelj shem, ki se uporablja za ustvarjanje in upravljanje tabel. Kaj se zgodi, če prekličete nekatere svoje selitve? Vse kar morate storiti je, da implementirate naslednji ukaz:
php artisan migrate:rollback
In pobral bo zadnjega migration
ki je bil izveden. Bazo podatkov lahko v celoti obnovite tako, da zaženete:
php artisan migrate:reset
To bo preklicalo vse vaše selitve.
Eloquent
Ko je selitev baze podatkov končana, je naslednji postopek seeding
. Eloquent
pride v poštev od seeding
vnaša zapise v našo bazo podatkov. Zato boste morali ustvariti predloge, preden zapolnite bazo podatkov. Vsaka tabela baze podatkov ima ustrezen model, ki se uporablja za interakcijo s to tabelo. Predloge vam omogočajo, da poizvedujete po podatkih v vaših tabelah, kot tudi vstavite nove zapise v tabelo. Najlažji način za ustvarjanje primerka modela je uporaba naslednjega ukaza:
php artisan make:model Student
Spodaj je prikazan primer predloge Student
, ki se lahko uporablja za pridobivanje in shranjevanje informacij iz tabele baze podatkov naših študentov:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Student extends Model
{
//
}
Ko ustvarite model in hkrati želite ustvariti migracijo baze podatkov, lahko uporabite možnost –migration
o -m
:
php artisan make:model Student --migration
php artisan make:model Student -m
Splošni sejalniki so poseben nabor razredov, ki nam omogočajo, da našo zbirko podatkov vedno znova napolnimo z enakimi podatki. Implementiramo naslednji ukaz:
php artisan make:seeder StudentsRecordSeeder
V urejevalniku besedil pod mapo semena odprite novo ustvarjeno datoteko z imenom datoteke: StudentsRecordSeeder.php
. Kot lahko vidite, je to le zelo preprost razred z eno samo metodo run
().
<?php
use IlluminateDatabaseSeeder;
class StudentsRecordSeeder extends Seeder
{
/**
* Run the database seeds
* @return void
*/
public function run()
{
//
}
}
Koda je le ovoj okrog razreda ukazov konzole, posebej izdelan za pomoč pri nalogi seeding
. Uredite kodo in jo nato shranite.
public function run()
{
echo 'Seeding!';
}
In grem do terminala:
php artisan db:seed --class=StudentsRecordSeeder
Zdaj lahko tabelo napolnite z nekaj vnosi in zaženete:
php artisan db:seed --class=class=StudentsRecordSeeder
Tukaj lahko še naprej brišete, dodajate, spreminjate vnose v DB in jih nato obnovite s preprostim ukazom.
Operacije CRUD z Laravel Eloquent objektno-relacijskim preslikavom (ORM) razvijalcem Laravel olajšajo delo z več zbirkami podatkov. Izvaja operacije ustvarjanja, branja, posodabljanja in brisanja (CRUD) ter preslika objektne modele v tabele baze podatkov. Upravlja vse interakcije z bazo podatkov, potrebne za operacije CRUD.
Za vstavljanje novega zapisa v bazo podatkov lahko uporabite metodo ::create.
student_record::create(array(
'first_name' => 'John',
'last_name' => 'Doe',
'student_rank' => 1
));
Poleg preproste metode ustvarjanja, prikazane zgoraj, lahko ustvarite tudi nov predmet in mu dodelite različne atribute. Nato lahko pokličete funkcijo save() in zaženete kodo. Metode, kot so firstOrCreate
() oz firstOrNew
() so druge možnosti za ustvarjanje zapisov. To vam bo omogočilo, da najdete študenta z določenimi lastnostmi; če tega študenta ne najdete, ga boste ustvarili v bazi podatkov ali instancirali nov primerek.
Z uporabo Eloquent ORM lahko poiščete zapise v svoji bazi podatkov. Poizvedbe so preprosto sestavljene in ponujajo nemoten potek. Če želite ustvariti izjave:where
, boste uporabili metode get
() In first
(). Metoda first
() vrne samo en zapis, medtem ko metoda get
() bo vrnil niz zapisov, ki ga je mogoče zankati. Tudi metoda find
() se lahko uporablja z nizom primarnih ključev, ki bo vrnil zbirko ujemajočih se zapisov. Tukaj je nekaj primerov:
$student = Students::all();
To kodo dobijo vsi učenci. Medtem ko naslednja koda najde določenega študenta po ID-ju:
$študent = študenti::najdi(1);
Kot je prikazano spodaj, koda opisuje tudi iskanje študenta na podlagi določenega atributa.
$JohnDoe = Students::where('name', '=', 'John Doe')->first();
Za metodo get() ta koda prikazuje, kako najti študenta z ravnjo nad 5.
$rankStudents = Student::where('student_rank', '>', 5)->get();
Posodabljanje zapisov z uporabo Eloquenta je prav tako enostavno. Če želite posodobiti zapis, poiščite zapis, ki ga želite posodobiti, uredite atribute in shranite. Na primer, če želite spremeniti razred učenca Johna Doeja na 5, najprej poiščite učenca in nato izvedite metodo shranjevanja.
$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();
Metodo shranjevanja lahko uporabite tudi za posodobitev modelov, ki že obstajajo v bazi podatkov.
Eloquent se ponaša z enostavnim posodabljanjem zapisov, vendar ima isto zgodbo z brisanjem. Obstajata dve možnosti: izvleči zapise in izvesti metodo brisanja ali preprosto uporabiti metodo uničenja. Če želite poiskati in izbrisati zapis, preprosto zaženite naslednje ukaze:
$student = Students::find(1);
$student->delete();
Če želite izbrisati zapis in več zapisov, se zaženejo ukazi:
Students::destroy(1);
Students::destroy(1, 2, 3);
Upoštevajte, da so parametri za uničenje samo primarni ključi, za razliko od metode za brisanje, ki lahko sprejme kateri koli stolpec baze podatkov.
Za iskanje in brisanje vseh študentov nad 10. stopnjo.
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Prejšnji ponedeljek je Financial Times objavil dogovor z OpenAI. FT licencira svoje vrhunsko novinarstvo ...
Milijoni ljudi plačujejo storitve pretakanja in plačujejo mesečne naročnine. Splošno mnenje je, da si…
Coveware by Veeam bo še naprej zagotavljal storitve odzivanja na incidente kibernetskega izsiljevanja. Coveware bo nudil forenziko in zmogljivosti sanacije ...
Prediktivno vzdrževanje revolucionira sektor nafte in plina z inovativnim in proaktivnim pristopom k upravljanju obratov.…