Články

Co je Laravel Eloquent, jak jej používat, tutoriál s příklady

Rámec Laravel PHP zahrnuje Eloquent Object Relational Mapper (ORM), který poskytuje extrémně snadný způsob komunikace s databází. 

Laravel a Eloquent pomáhají urychlit vývoj aplikací a platforem a poskytují adekvátní řešení většiny problémů. Požadavky jsou řešeny rychlejším vývojem, stejně jako dobře organizovaným, opakovaně použitelným, udržovatelným a škálovatelným kódem. 

Jak Eloquent funguje

Vývojáři mohou pracovat Eloquent s více databázemi efektivně pomocí implementace ActiveMethod. Jedná se o architektonický vzor, ​​kde model vytvořený ve struktuře Model-View-Controller (MVC) odpovídá tabulce v databázi. Výhodou je, že modely provádějí běžné databázové operace bez kódování dlouhých SQL dotazů. Šablony umožňují dotazovat se na data v tabulkách a vkládat do tabulek nové záznamy. Proces synchronizace více databází běžících na různých systémech je zjednodušen. Nemusíte psát SQL dotazy. Jediné, co musíte udělat, je defiDokončete databázové tabulky a vztahy mezi nimi a Eloquent udělá zbytek práce.

Laravelova příprava

Ocenění užitečnosti Eloquent ORM a pochopení ekosystému je nutností. Kroky, jak začít:

  1. Nainstalujte Laravel z getcomposer.org, postupujte podle pokynů zde
  2. Tvorba migration pomocí konzole Artisan
  3. Vytvářejte šablony eloquent
  4. spustit i seed databáze

Artisan Console je název rozhraní příkazového řádku obsaženého v Laravelu. Poskytuje sadu užitečných příkazů, které lze použít při vývoji vaší aplikace. Je poháněn výkonným komponentem Symfony Console.

Chcete-li zobrazit seznam všech dostupných příkazů Artisan, můžete použít příkaz list:

php artisan list

Všechny příkazy jsou dodávány se stručným popisem jejich argumentů a možností. To je zobrazeno na obrazovce "nápověda". Chcete-li zobrazit obrazovku nápovědy, jednoduše před název příkazu uveďte „help“, jak je znázorněno:

php artisan help migrate

Migration

Migrace je proces správy databáze napsáním PHP SQL. Poskytuje způsob, jak přidat správu verzí do databáze. 

Chcete-li vytvořit migraci, stačí spustit následující příkaz:

php artisan make:migration create_student_records

Tím se vytvoří soubor migrace. V textovém editoru otevřete soubor, který jste právě vytvořili ve složce 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 třída se stejným názvem 'create student records“ a má dvě metody: nahoru a dolů. Metoda up by měla provést změny v databázi; takže kdykoli provedete migraci databáze, bude proveden jakýkoli kód v metodě up. Na druhou stranu by metoda down měla vrátit zpět tyto změny databáze; takže kdykoli spustíte rollback z migration, metoda down by měla vrátit zpět to, co udělala metoda nahoru. Uvnitř metody up existuje nástroj pro tvorbu schémat používaný k vytváření a manipulaci s tabulkami. Co se stane, když zrušíte některé ze svých migrací? Jediné, co musíte udělat, je implementovat následující příkaz:

php artisan migrate:rollback

A sebere poslední migration který byl realizován. Databázi můžete také plně obnovit spuštěním:

php artisan migrate:reset

Tím zrušíte všechny vaše migrace.

Definí modelů Eloquent

Po dokončení migrace databáze je dalším procesem seedingEloquent přichází do hry od seeding vkládá záznamy do naší databáze. Před naplněním databáze tedy budete muset vytvořit šablony. Každá databázová tabulka má odpovídající model, který se používá k interakci s touto tabulkou. Šablony vám umožňují dotazovat se na data ve vašich tabulkách a také do tabulky vkládat nové záznamy. Nejjednodušší způsob, jak vytvořit instanci modelu, je použít následující příkaz:

php artisan make:model Student
Příklad šablony je uveden níže Student, který lze použít k načtení a uložení informací z databázové tabulky našeho studenta:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Když generujete model a zároveň chcete vygenerovat migraci databáze, můžete použít volbu –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Secí stroje

Total Seeders jsou speciální sadou tříd, které nám umožňují naplňovat naši databázi znovu a znovu přesně stejnými daty. Implementujeme následující příkaz:

php artisan make:seeder StudentsRecordSeeder

V textovém editoru ve složce semena otevřete nově vytvořený soubor s názvem: StudentsRecordSeeder.php. Jak můžete vidět, je to jen velmi jednoduchá třída s jedinou nazvanou metodou run().

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

Kód je jen obal kolem třídy příkazů konzoly, speciálně vytvořený tak, aby pomohl s úkolem seeding. Upravte kód a poté jej uložte.

Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.
public function run()
{
    echo 'Seeding!';
}

A přejděte k terminálu:

php artisan db:seed --class=StudentsRecordSeeder

Nyní můžete naplnit tabulku několika položkami a spustit:

php artisan db:seed --class=class=StudentsRecordSeeder

Zde můžete záznamy v DB průběžně mazat, přidávat, upravovat a poté je jednoduchým příkazem obnovovat.

CRUD s Laravel Eloquent

Operace CRUD s Laravel Eloquent objektově-relačním mapovačem (ORM) usnadňují vývojářům Laravelu práci s více databázemi. Provádí operace vytváření, čtení, aktualizace a mazání (CRUD) a mapuje objektové modely na databázové tabulky. Zvládá všechny databázové interakce potřebné pro operace CRUD.

Tvorba záznamů

Pro vložení nového záznamu do databáze můžete použít metodu ::create.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

Kromě výše uvedené jednoduché metody vytváření můžete také vytvořit nový objekt a dát mu různé atributy. Poté můžete zavolat funkci save() a spustit kód. Metody jako firstOrCreate() nebo firstOrNew() jsou další možnosti vytváření záznamů. Ty vám umožní najít studenta s určitými atributy; pokud tento student není nalezen, vytvoříte jej v databázi nebo vytvoříte instanci nové instance.

Čtení záznamů

Pomocí Eloquent ORM můžete najít záznamy ve své databázi. Dotazy jsou sestaveny jednoduše a nabízejí plynulý tok. Chcete-li vytvořit prohlášení:where, budete používat metody get() A first(). Metoda first() vrátí pouze jeden záznam, zatímco metoda get() vrátí pole záznamů s možností zacyklení. Také metoda find() lze použít s polem primárních klíčů, které vrátí kolekci odpovídajících záznamů. Zde jsou nějaké příklady:

$student = Students::all();

Tento kód dostane všechny studenty. Zatímco následující kód najde konkrétního studenta podle ID:

$student = Studenti::find(1);

Také, jak je uvedeno níže, kód popisuje vyhledávání studenta na základě konkrétního atributu.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Pro metodu get() tento kód ukazuje, jak najít studenta s úrovní vyšší než 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Aktualizace záznamu

Aktualizace záznamů pomocí Eloquent je stejně snadná. Chcete-li aktualizovat záznam, stačí najít záznam, který chcete aktualizovat, upravit atributy a uložit. Chcete-li například změnit úroveň ročníku studenta Johna Doea na 5, nejprve studenta najděte a poté spusťte metodu uložení.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Metodu ukládání lze také použít k aktualizaci modelů, které již v databázi existují.

Smazat záznamy

Eloquent se chlubí snadným procesem aktualizace záznamů, ale stejný příběh má s mazáním. Existují dvě možnosti: vytáhnout záznamy a provést metodu odstranění, nebo jednoduše použít metodu zničit. Chcete-li najít a odstranit záznam, jednoduše spusťte následující příkazy:

$student = Students::find(1);
$student->delete();

Chcete-li odstranit záznam a více záznamů, spusťte příkazy:

Students::destroy(1);
Students::destroy(1, 2, 3);

Všimněte si, že parametry zničení jsou pouze primární klíče na rozdíl od metody delete, která může přijmout jakýkoli sloupec databáze.

Chcete-li najít a odstranit všechny studenty nad úrovní 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.

Nedávné články

Výhody omalovánek pro děti - svět kouzel pro všechny věkové kategorie

Rozvíjení jemné motoriky prostřednictvím vybarvování připravuje děti na složitější dovednosti, jako je psaní. Barvit…

2. května 2024

Budoucnost je tady: Jak lodní průmysl revolucionizuje globální ekonomiku

Námořní sektor je skutečnou globální ekonomickou velmocí, která se dostala na 150miliardový trh...

1. května 2024

Vydavatelé a OpenAI podepisují dohody o regulaci toku informací zpracovávaných umělou inteligencí

Minulé pondělí Financial Times oznámily dohodu s OpenAI. FT licencuje svou prvotřídní žurnalistiku…

30. dubna 2024

Online platby: Zde je návod, jak vám streamovací služby umožňují platit navždy

Miliony lidí platí za streamovací služby a platí měsíční předplatné. Je obecný názor, že jste…

29. dubna 2024