Laravel a Eloquent pomáhajú urýchliť vývoj aplikácií a platforiem a poskytujú adekvátne riešenie väčšiny problémov. Požiadavky sa riešia rýchlejším vývojom, ako aj dobre organizovaným, opakovane použiteľným, udržiavateľným a škálovateľným kódom.
Vývojári môžu pracovať Eloquent
s viacerými databázami efektívne pomocou implementácie ActiveMethod. Ide o architektonický vzor, kde model vytvorený v štruktúre Model-View-Controller (MVC) zodpovedá tabuľke v databáze. Výhodou je, že modely vykonávajú bežné databázové operácie bez kódovania dlhých SQL dotazov. Šablóny umožňujú dotazovať údaje v tabuľkách a vkladať do tabuliek nové záznamy. Proces synchronizácie viacerých databáz bežiacich na rôznych systémoch je zjednodušený. Nemusíte písať SQL dotazy. Všetko, čo musíte urobiť, je defiDokončite databázové tabuľky a vzťahy medzi nimi a Eloquent urobí zvyšok práce.
Oceniť užitočnosť Eloquent ORM a porozumieť ekosystému je nevyhnutnosťou. Kroky, ako začať:
migration
pomocou konzoly Artisan
eloquent
seed
databázyArtisan Console
je názov rozhrania príkazového riadka zahrnutého v Laravel. Poskytuje súbor užitočných príkazov, ktoré môžete použiť pri vývoji vašej aplikácie. Je poháňaný výkonným komponentom Symfony Console
.
Ak chcete zobraziť zoznam všetkých dostupných príkazov Artisan, môžete použiť príkaz list:
php artisan list
Všetky príkazy sa dodávajú so stručným popisom ich argumentov a možností. Toto je zobrazené na obrazovke „pomocníka“. Ak chcete zobraziť obrazovku pomocníka, jednoducho pred názov príkazu uveďte „help“, ako je znázornené:
php artisan help migrate
Migration
Migrácia je proces správy databázy napísaním PHP SQL
. Poskytuje spôsob, ako pridať kontrolu verzií do databázy.
Ak chcete vytvoriť migráciu, stačí spustiť nasledujúci príkaz:
php artisan make:migration create_student_records
Tým sa vytvorí migračný súbor. V textovom editore otvorte súbor, ktorý ste práve vytvorili v priečinku 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');
}
}
Kód je trieda s rovnakým názvom 'create student records
“ a má dve metódy: hore a dole. Metóda up by mala vykonať zmeny v databáze; takže vždy, keď migrujete svoju databázu, spustí sa akýkoľvek kód v metóde up. Na druhej strane, metóda down by mala vrátiť späť tieto zmeny databázy; takže kedykoľvek spustíte rollback
z migration
, metóda dole by mala vrátiť späť to, čo urobila metóda hore. Vo vnútri metódy up
existuje nástroj na tvorbu schém, ktorý sa používa na vytváranie a manipuláciu s tabuľkami. Čo sa stane, ak zrušíte niektoré zo svojich migrácií? Všetko, čo musíte urobiť, je implementovať nasledujúci príkaz:
php artisan migrate:rollback
A zoženie aj posledné migration
ktorá bola implementovaná. Databázu môžete tiež úplne obnoviť spustením:
php artisan migrate:reset
Týmto sa zrušia všetky vaše migrácie.
Eloquent
Po dokončení migrácie databázy nasleduje ďalší proces seeding
. Eloquent
prichádza do hry od r seeding
vkladá záznamy do našej databázy. Pred naplnením databázy teda budete musieť vytvoriť šablóny. Každá tabuľka databázy má zodpovedajúci model, ktorý sa používa na interakciu s touto tabuľkou. Šablóny vám umožňujú dopytovať údaje vo vašich tabuľkách, ako aj vkladať nové záznamy do tabuľky. Najjednoduchší spôsob, ako vytvoriť inštanciu modelu, je použiť nasledujúci príkaz:
php artisan make:model Student
Príklad šablóny je uvedený nižšie Student
, ktorý možno použiť na získanie a uloženie informácií z databázovej tabuľky nášho študenta:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Student extends Model
{
//
}
Keď generujete model a zároveň chcete vygenerovať migráciu databázy, môžete použiť túto možnosť –migration
o -m
:
php artisan make:model Student --migration
php artisan make:model Student -m
Celkové sediace programy sú špeciálnou sadou tried, ktoré nám umožňujú napĺňať našu databázu znova a znova presne tými istými údajmi. Implementujeme nasledujúci príkaz:
php artisan make:seeder StudentsRecordSeeder
V textovom editore v priečinku semien otvorte novovytvorený súbor s názvom: StudentsRecordSeeder.php
. Ako môžete vidieť, je to len veľmi jednoduchá trieda s jedinou nazývanou metódou run
,
<?php
use IlluminateDatabaseSeeder;
class StudentsRecordSeeder extends Seeder
{
/**
* Run the database seeds
* @return void
*/
public function run()
{
//
}
}
Kód je len obal okolo triedy príkazov konzoly, špeciálne vytvorený na pomoc s úlohou seeding
. Upravte kód a potom ho uložte.
public function run()
{
echo 'Seeding!';
}
A prejdite na terminál:
php artisan db:seed --class=StudentsRecordSeeder
Teraz môžete vyplniť tabuľku niekoľkými položkami a spustiť:
php artisan db:seed --class=class=StudentsRecordSeeder
Tu môžete pokračovať v odstraňovaní, pridávaní, upravovaní záznamov v DB a potom ich obnovovať jednoduchým príkazom.
Operácie CRUD s Laravel Eloquent objektovo-relačným mapovačom (ORM) uľahčujú vývojárom Laravelu prácu s viacerými databázami. Vykonáva operácie vytvárania, čítania, aktualizácie a odstraňovania (CRUD) a mapuje modely objektov na databázové tabuľky. Zvláda všetky interakcie databázy potrebné pre operácie CRUD.
Na vloženie nového záznamu do databázy môžete použiť metódu ::create.
student_record::create(array(
'first_name' => 'John',
'last_name' => 'Doe',
'student_rank' => 1
));
Okrem jednoduchého spôsobu vytvárania uvedeného vyššie môžete tiež vytvoriť nový objekt a dať mu rôzne atribúty. Potom môžete zavolať funkciu save() a spustiť kód. Metódy ako firstOrCreate
() alebo firstOrNew
() sú ďalšie možnosti vytvárania záznamov. Tie vám umožnia nájsť študenta s určitými atribútmi; ak sa tento študent nenájde, vytvoríte ho v databáze alebo vytvoríte novú inštanciu.
Pomocou Eloquent ORM môžete nájsť záznamy vo svojej databáze. Dotazy sú jednoducho zostavené a ponúkajú plynulý tok. Ak chcete vytvoriť vyhlásenia:where
, použijete metódy get
() A first
(). Metóda first
() vráti iba jeden záznam, zatiaľ čo metóda get
() vráti pole záznamov s možnosťou zacyklenia. Tiež metóda find
() možno použiť s radom primárnych kľúčov, ktoré vrátia kolekciu zodpovedajúcich záznamov. Tu je niekoľko príkladov:
$student = Students::all();
Tento kód dostane všetkých študentov. Zatiaľ čo nasledujúci kód nájde konkrétneho študenta podľa ID:
$student = Študenti::find(1);
Ako je uvedené nižšie, kód tiež popisuje vyhľadávanie študenta na základe špecifického atribútu.
$JohnDoe = Students::where('name', '=', 'John Doe')->first();
Pre metódu get() tento kód ukazuje, ako nájsť študenta s úrovňou nad 5.
$rankStudents = Student::where('student_rank', '>', 5)->get();
Aktualizácia záznamov pomocou Eloquent je rovnako jednoduchá. Ak chcete aktualizovať záznam, stačí nájsť záznam, ktorý chcete aktualizovať, upraviť atribúty a uložiť. Ak chcete napríklad zmeniť úroveň ročníka študenta Johna Doea na 5, najprv nájdite študenta a potom vykonajte metódu uloženia.
$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();
Metódu uloženia možno použiť aj na aktualizáciu modelov, ktoré už v databáze existujú.
Eloquent sa môže pochváliť jednoduchým procesom aktualizácie záznamov, ale rovnaký príbeh má aj s vymazávaním. Existujú dve možnosti: vytiahnuť záznamy a spustiť metódu odstránenia alebo jednoducho použiť metódu zničiť. Ak chcete nájsť a odstrániť záznam, jednoducho spustite nasledujúce príkazy:
$student = Students::find(1);
$student->delete();
Na vymazanie záznamu a viacerých záznamov sa spustia príkazy:
Students::destroy(1);
Students::destroy(1, 2, 3);
Upozorňujeme, že parametre zničenia sú iba primárne kľúče na rozdiel od metódy vymazania, ktorá môže akceptovať akýkoľvek stĺpec databázy.
Ak chcete nájsť a odstrániť všetkých študentov nad úrovňou 10.
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Rozvíjanie jemnej motoriky pomocou vyfarbovania pripravuje deti na zložitejšie zručnosti, ako je písanie. Na farbenie…
Námorný sektor je skutočnou globálnou ekonomickou veľmocou, ktorá smerovala k 150 miliardovému trhu...
Minulý pondelok Financial Times oznámili dohodu s OpenAI. FT licencuje svoju žurnalistiku svetovej triedy…
Milióny ľudí platia za streamovacie služby a platia mesačné predplatné. Je bežný názor, že si…