A Laravel és az Eloquent felgyorsítja az alkalmazás- és platformfejlesztést, megfelelő megoldást nyújtva a legtöbb problémára. A követelményeket gyorsabb fejlesztéssel, valamint jól szervezett, újrafelhasználható, karbantartható és méretezhető kóddal elégítik ki.
A fejlesztők dolgozhatnak Eloquent
több adatbázissal hatékonyan egy ActiveMethod implementáció használatával. Ez egy olyan építészeti minta, ahol a Model-View-Controller (MVC) struktúrában létrehozott modell megfelel az adatbázisban lévő táblázatnak. Előnye, hogy a modellek általános adatbázis-műveleteket hajtanak végre hosszú SQL lekérdezések kódolása nélkül. A sablonok lehetővé teszik a táblázatokban lévő adatok lekérdezését és új rekordok beszúrását a táblákba. A különböző rendszereken futó több adatbázis szinkronizálásának folyamata leegyszerűsödik. Nem kell SQL lekérdezéseket írnia. Csak annyit kell tennie defiFejezze be az adatbázistáblákat és a köztük lévő kapcsolatokat, és az Eloquent elvégzi a többi munkát.
Az Eloquent ORM hasznosságának értékelése és az ökoszisztéma megértése elengedhetetlen. A kezdéshez lépések:
migration
a konzol használatával Artisan
eloquent
seed
az adatbázisbólArtisan Console
a Laravelben található parancssori felület neve. Hasznos parancsokat biztosít az alkalmazás fejlesztése során. Erőteljes komponens hajtja Symfony Console
.
Az összes elérhető Artisan parancs listájának megtekintéséhez használja a list parancsot:
php artisan list
Minden parancshoz tartozik az argumentumok és opciók tömör leírása. Ez a "súgó" képernyőn jelenik meg. A súgó képernyő megjelenítéséhez egyszerűen írja be a parancs nevét a „help” szó elé, ahogy az ábrán látható:
php artisan help migrate
Migration
A migráció egy adatbázis-kezelési folyamat, amely helyett PHP-t írnak SQL
. Lehetővé teszi a verzióvezérlés hozzáadását az adatbázishoz.
Az áttelepítés létrehozásához futtassa a következő parancsot:
php artisan make:migration create_student_records
Ezzel létrejön a migrációs fájl. A szövegszerkesztőben nyissa meg a mappában most létrehozott fájlt 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');
}
}
A kód egy azonos nevű osztálycreate student records
', és két módszere van: fel és le. Az up metódusnak módosítania kell az adatbázist; így az adatbázis áttelepítésekor a up metódus bármely kódja végrehajtásra kerül. Másrészt a down metódusnak vissza kell állítania ezeket az adatbázis-módosításokat; így amikor futtatja a rollback
az migration
, a le módszernek vissza kell vonnia azt, amit a fel módszer tett. A módszer belsejében up
létezik a sémakészítő, amely a táblák létrehozására és kezelésére szolgál. Mi történik, ha törli az áttelepítések egy részét? Mindössze annyit kell tennie, hogy végrehajtja a következő parancsot:
php artisan migrate:rollback
És begyűjti az utolsót migration
amely megvalósult. Ezenkívül teljes mértékben visszaállíthatja az adatbázist a következő futtatásával:
php artisan migrate:reset
Ezzel törli az összes migrációt.
Eloquent
Az adatbázis-áttelepítés befejezése után a következő folyamat a seeding
. Eloquent
óta lép életbe seeding
rekordokat szúr be az adatbázisunkba. Tehát az adatbázis feltöltése előtt létre kell hoznia a sablonokat. Minden adatbázistáblához tartozik egy megfelelő modell, amelyet az adott táblával való interakcióhoz használnak. A sablonok lehetővé teszik a táblákban lévő adatok lekérdezését, valamint új rekordok beszúrását a táblába. A modell példányosításának legegyszerűbb módja a következő parancs használata:
php artisan make:model Student
Az alábbiakban látható egy példa egy sablonra Student
, amellyel tanulóink adatbázistáblájából lehet információkat lekérni és tárolni:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Student extends Model
{
//
}
Amikor létrehoz egy modellt, és egyidejűleg adatbázisáttelepítést szeretne létrehozni, használhatja ezt a lehetőséget –migration
o -m
:
php artisan make:model Student --migration
php artisan make:model Student -m
Az általános vetőgépek olyan speciális osztályok, amelyek lehetővé teszik számunkra, hogy újra és újra feltöltsük adatbázisunkat pontosan ugyanazokkal az adatokkal. A következő parancsot hajtjuk végre:
php artisan make:seeder StudentsRecordSeeder
A szövegszerkesztőben a seed mappában nyissa meg az újonnan létrehozott fájlt fájlnévvel: StudentsRecordSeeder.php
. Mint látható, ez csak egy nagyon egyszerű osztály egyetlen metódussal run
†
<?php
use IlluminateDatabaseSeeder;
class StudentsRecordSeeder extends Seeder
{
/**
* Run the database seeds
* @return void
*/
public function run()
{
//
}
}
A kód csak egy konzolos parancsosztály körüli burkolóanyag, amelyet kifejezetten a feladat elvégzésére terveztek seeding
. Szerkessze a kódot, majd mentse el.
public function run()
{
echo 'Seeding!';
}
És megyek a terminálhoz:
php artisan db:seed --class=StudentsRecordSeeder
Most feltöltheti a táblát néhány bejegyzéssel, és futtathatja:
php artisan db:seed --class=class=StudentsRecordSeeder
Itt folyamatosan törölheti, hozzáadhatja, módosíthatja a DB bejegyzéseit, majd egy egyszerű paranccsal visszaállíthatja azokat.
A CRUD műveletek a Laravel Eloquent objektumrelációs leképezővel (ORM) megkönnyítik a Laravel fejlesztők számára a több adatbázissal való munkát. Létrehozási, olvasási, frissítési és törlési (CRUD) műveleteket hajt végre, és az objektummodelleket adatbázistáblákhoz rendeli hozzá. Kezeli a CRUD műveletekhez szükséges összes adatbázis-interakciót.
A ::create metódussal új rekordot szúrhat be az adatbázisba.
student_record::create(array(
'first_name' => 'John',
'last_name' => 'Doe',
'student_rank' => 1
));
A fent bemutatott egyszerű létrehozási módszeren kívül új objektumot is létrehozhat, és különböző attribútumokat adhat hozzá. Ezután meghívhatja a save() függvényt, és futtathatja a kódot. Módszerek, mint firstOrCreate
() vagy firstOrNew
() további lehetőségek a rekordok létrehozására. Ezek lehetővé teszik, hogy bizonyos tulajdonságokkal rendelkező tanulót találjon; Ha az adott tanuló nem található, akkor létrehozza az adatbázisban, vagy példányosít egy új példányt.
Az Eloquent ORM használatával rekordokat találhat az adatbázisában. A lekérdezések egyszerűen felépítettek, és gördülékeny áramlást kínálnak. Nyilatkozatok létrehozása:where
, akkor a módszereket fogja használni get
() És first
(). A módszer first
() csak egy rekordot ad vissza, míg a metódus get
() a rekordok hurkolható tömbjét adja vissza. Valamint a módszer find
() használható elsődleges kulcsok tömbjével, amely egyező rekordok gyűjteményét adja vissza. Íme néhány példa:
$student = Students::all();
Ez a kód minden tanulót megkap. Míg a következő kód egy adott diákot azonosító alapján talál:
$diák = Diákok::find(1);
Továbbá, amint az alább látható, a kód leírja egy tanuló keresését egy adott attribútum alapján.
$JohnDoe = Students::where('name', '=', 'John Doe')->first();
A get() metódus esetében ez a kód megmutatja, hogyan lehet 5-nél magasabb szintű tanulót találni.
$rankStudents = Student::where('student_rank', '>', 5)->get();
A rekordok frissítése az Eloquent segítségével ugyanolyan egyszerű. Egy rekord frissítéséhez keresse meg a frissíteni kívánt rekordot, szerkessze az attribútumokat, és mentse el. Ha például John Doe tanítványának osztályzati szintjét 5-re szeretné módosítani, először keresse meg a tanulót, majd hajtsa végre a mentési módszert.
$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();
A mentési módszer az adatbázisban már meglévő modellek frissítésére is használható.
Az Eloquent egyszerű rekordfrissítési folyamatával büszkélkedhet, de ugyanez a története a törléssel. Két lehetőség van: a rekordok kihúzása és a törlési módszer végrehajtása, vagy egyszerűen a megsemmisítési módszer használata. Egy rekord megkereséséhez és törléséhez egyszerűen futtassa a következő parancsokat:
$student = Students::find(1);
$student->delete();
Egy rekord és több rekord törléséhez a következő parancsokat kell futtatni:
Students::destroy(1);
Students::destroy(1, 2, 3);
Ne feledje, hogy a delete paraméterei csak elsődleges kulcsok, ellentétben a törlési metódussal, amely bármilyen adatbázis-oszlopot képes fogadni.
A 10. szint feletti összes tanuló megkereséséhez és törléséhez.
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
A finom motoros készségek színezéssel történő fejlesztése felkészíti a gyerekeket olyan összetettebb készségekre, mint az írás. Kiszínezni…
A haditengerészeti szektor igazi világgazdasági hatalom, amely egy 150 milliárdos piac felé navigált...
Múlt hétfőn a Financial Times bejelentette, hogy megállapodást köt az OpenAI-val. Az FT engedélyezi világszínvonalú újságírását…
Emberek milliói fizetnek a streaming szolgáltatásokért, havi előfizetési díjat fizetve. Általános vélemény, hogy Ön…