Cikkek

Mi az a Laravel Eloquent, hogyan kell használni, bemutató példákkal

A Laravel PHP keretrendszer része az Eloquent Object Relational Mapper (ORM), amely rendkívül egyszerű módot biztosít az adatbázisokkal való kommunikációra. 

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. 

Hogyan működik az Eloquent

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.

Laravel előkészítés

Az Eloquent ORM hasznosságának értékelése és az ökoszisztéma megértése elengedhetetlen. A kezdéshez lépések:

  1. Telepítse a Laravel-t a getcomposer.org webhelyről, ehhez kövesse az itt található utasításokat
  2. Teremtés migration a konzol használatával Artisan
  3. Hozzon létre sablonokat eloquent
  4. fuss i seed az adatbázisból

Artisan 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.

Defimodelljei Eloquent

Az adatbázis-áttelepítés befejezése után a következő folyamat a seedingEloquent ó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

Vetőgépek

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.

Innovációs hírlevél
Ne maradjon le az innovációval kapcsolatos legfontosabb hírekről. Regisztráljon, hogy megkapja őket e-mailben.
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.

CRUD Laravel Eloquent-tel

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.

Rekordok létrehozása

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.

Feljegyzések olvasása

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();
Felvétel frissítése

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ó.

Rekordok törlése

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
Innovációs hírlevél
Ne maradjon le az innovációval kapcsolatos legfontosabb hírekről. Regisztráljon, hogy megkapja őket e-mailben.

Friss cikkek

A színező oldalak előnyei gyerekeknek – a varázslatok világa minden korosztály számára

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…

Május 2 2024

A jövő itt van: Hogyan forradalmasítja a hajózási ágazat a globális gazdaságot

A haditengerészeti szektor igazi világgazdasági hatalom, amely egy 150 milliárdos piac felé navigált...

Május 1 2024

A kiadók és az OpenAI megállapodásokat írnak alá a mesterséges intelligencia által feldolgozott információáramlás szabályozására

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…

30 április 2024

Online fizetés: Így fizethet örökké a streaming szolgáltatások

Emberek milliói fizetnek a streaming szolgáltatásokért, havi előfizetési díjat fizetve. Általános vélemény, hogy Ön…

29 április 2024