Artikelen

Wat is Laravel Eloquent, hoe het te gebruiken, tutorial met voorbeelden

Het Laravel PHP-framework bevat Eloquent Object Relational Mapper (ORM), dat een uiterst gemakkelijke manier biedt om met een database te communiceren. 

Laravel en Eloquent helpen de ontwikkeling van applicaties en platforms te versnellen en bieden een adequate oplossing voor de meeste problemen. Vereisten worden aangepakt met snellere ontwikkeling, evenals goed georganiseerde, herbruikbare, onderhoudbare en schaalbare code. 

Hoe Eloquent werkt

Ontwikkelaars kunnen werken Eloquent met meerdere databases efficiënt met behulp van een ActiveMethod-implementatie. Het is een architectonisch patroon waarbij het model dat is gemaakt in de Model-View-Controller (MVC) -structuur overeenkomt met een tabel in de database. Het voordeel is dat de modellen algemene databasebewerkingen uitvoeren zonder lange SQL-query's te coderen. Met sjablonen kunt u gegevens in tabellen opvragen en nieuwe records in tabellen invoegen. Het proces van het synchroniseren van meerdere databases die op verschillende systemen draaien, is vereenvoudigd. U hoeft geen SQL-query's te schrijven. Alles wat je moet doen is defiMaak de databasetabellen en de relaties ertussen af, en Eloquent zal de rest van het werk doen.

Laravel-voorbereiding

Het nut van Eloquent ORM waarderen en het ecosysteem begrijpen is een must. Stappen om aan de slag te gaan:

  1. Installeer Laravel van getcomposer.org, volg hiervoor de instructies hier
  2. schepping migration met behulp van de console Artisan
  3. Sjablonen maken eloquent
  4. ren ik seed van de databank

Artisan Console is de naam van de opdrachtregelinterface in Laravel. Biedt een reeks handige opdrachten die u kunt gebruiken tijdens het ontwikkelen van uw toepassing. Het wordt aangedreven door de krachtige component Symfony Console.

Om een ​​lijst te zien van alle beschikbare Artisan-commando's, kun je het list-commando gebruiken:

php artisan list

Alle commando's worden geleverd met een beknopte beschrijving van de argumenten en opties. Dit wordt weergegeven in een "help"-scherm. Om een ​​helpscherm weer te geven, laat u de opdrachtnaam gewoon voorafgaan door "help", zoals weergegeven:

php artisan help migrate

Migration

Migratie is een databasebeheerproces door in plaats daarvan PHP te schrijven SQL. Biedt een manier om versiebeheer aan de database toe te voegen. 

Voer de volgende opdracht uit om een ​​migratie te maken:

php artisan make:migration create_student_records

Hiermee wordt het migratiebestand gemaakt. Open in uw teksteditor het bestand dat u zojuist in de map hebt gemaakt 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');
    }
}

De code is een klasse met dezelfde naam 'create student records', en heeft twee methoden: omhoog en omlaag. De up-methode moet wijzigingen in de database aanbrengen; dus elke keer dat u uw database migreert, wordt elke code in de up-methode uitgevoerd. Aan de andere kant zou de neerwaartse methode die databasewijzigingen moeten terugdraaien; dus wanneer u de rollback van migration, zou de down-methode ongedaan moeten maken wat de up-methode deed. Binnen de methode up er is de schemabouwer die wordt gebruikt om de tabellen te maken en te manipuleren. Wat gebeurt er als u enkele van uw migraties annuleert? Het enige dat u hoeft te doen, is de volgende opdracht implementeren:

php artisan migrate:rollback

En hij zal de laatste ophalen migration die is uitgevoerd. U kunt de database ook volledig herstellen door het volgende uit te voeren:

php artisan migrate:reset

Hiermee annuleer je al je migraties.

Defimodellen van Eloquent

Nadat de databasemigratie is voltooid, is het volgende proces de seedingEloquent speelt sinds de seeding voegt records toe aan onze database. U moet dus de sjablonen maken voordat u de database vult. Elke databasetabel heeft een bijbehorend model dat wordt gebruikt om met die tabel te communiceren. Met sjablonen kunt u de gegevens in uw tabellen opvragen en nieuwe records in de tabel invoegen. De eenvoudigste manier om het model te instantiëren is door de volgende opdracht te gebruiken:

php artisan make:model Student
Hieronder ziet u een voorbeeld van een sjabloon Student, die kan worden gebruikt om informatie uit de databasetabel van onze studenten op te halen en op te slaan:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Wanneer u een model genereert en tegelijkertijd een databasemigratie wilt genereren, kunt u de optie gebruiken –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Zaaimachines

Algehele seeders zijn een speciale set klassen waarmee we onze database keer op keer kunnen vullen met exact dezelfde gegevens. We implementeren de volgende opdracht:

php artisan make:seeder StudentsRecordSeeder

Open in de teksteditor, onder de map Seeds, het nieuw gemaakte bestand met de bestandsnaam: StudentsRecordSeeder.php. Zoals je kunt zien, is dit slechts een heel eenvoudige klasse met een enkele methode genaamd run().

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

De code is slechts een omhulsel rond een console-opdrachtklasse, speciaal gebouwd om te helpen bij de taak van seeding. Bewerk de code en sla deze vervolgens op.

Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.
public function run()
{
    echo 'Seeding!';
}

En naar de terminal gaan:

php artisan db:seed --class=StudentsRecordSeeder

Nu kunt u de tabel vullen met enkele vermeldingen en uitvoeren:

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

Hier kunt u vermeldingen in de database blijven verwijderen, toevoegen, wijzigen en vervolgens met een eenvoudige opdracht herstellen.

CRUD met Laravel Eloquent

CRUD-bewerkingen met Laravel Eloquent object-relational mapper (ORM) maken het voor Laravel-ontwikkelaars gemakkelijker om met meerdere databases te werken. Het voert bewerkingen voor het maken, lezen, bijwerken en verwijderen (CRUD) uit en wijst objectmodellen toe aan databasetabellen. Verwerkt alle database-interacties die nodig zijn voor CRUD-bewerkingen.

Creëren van dossiers

U kunt de methode ::create gebruiken om een ​​nieuw record in de database in te voegen.

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

Naast de hierboven getoonde eenvoudige creatiemethode, kunt u ook een nieuw object maken en het andere attributen geven. Vervolgens kunt u de functie save() aanroepen en de code uitvoeren. Methoden zoals firstOrCreate() uit firstOrNew() zijn andere opties voor het maken van records. Hiermee kun je een student met bepaalde attributen vinden; als die student niet wordt gevonden, maakt u deze aan in de database of maakt u een nieuwe instantie aan.

Records lezen

Met Eloquent ORM kunt u records in uw database vinden. De vragen zijn eenvoudig opgebouwd en bieden een vlotte doorstroming. Verklaringen maken::where, ga je de methodes gebruiken get() En first(). De methode first() retourneert slechts één record, terwijl de methode get() retourneert een loopbare reeks records. Ook de werkwijze find() kan worden gebruikt met een reeks primaire sleutels, die een verzameling overeenkomende records zal retourneren. Hier zijn enkele voorbeelden:

$student = Students::all();

Deze code krijgt alle studenten. Terwijl de volgende code een specifieke student op ID vindt:

$student = Studenten::vind(1);

Zoals hieronder getoond, beschrijft de code ook het zoeken naar een student op basis van een specifiek attribuut.

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

Voor de methode get() laat deze code zien hoe je een leerling kunt vinden met een niveau hoger dan 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Record-update

Records bijwerken met Eloquent is net zo eenvoudig. Om een ​​record bij te werken, hoeft u alleen maar het record te zoeken dat u wilt bijwerken, de kenmerken te bewerken en op te slaan. Als u bijvoorbeeld het leerjaar van de leerling van John Doe wilt wijzigen in 5, zoekt u eerst de leerling en voert u vervolgens de opslagmethode uit.

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

De opslagmethode kan ook worden gebruikt om modellen bij te werken die al in de database bestaan.

Records verwijderen

Eloquent pronkt met het gemakkelijke updateproces van records, maar het heeft hetzelfde verhaal met verwijderen. Er zijn twee opties: verwijder records en voer de verwijdermethode uit, of gebruik gewoon de vernietigingsmethode. Voer eenvoudig de volgende opdrachten uit om een ​​record te vinden en te verwijderen:

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

Om een ​​record en meerdere records te verwijderen, worden de opdrachten uitgevoerd:

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

Merk op dat de parameters van vernietigen alleen primaire sleutels zijn, in tegenstelling tot de verwijdermethode die elke databasekolom kan accepteren.

Om alle leerlingen boven niveau 10 te vinden en te verwijderen.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Innovatie nieuwsbrief
Mis het belangrijkste nieuws over innovatie niet. Meld u aan om ze per e-mail te ontvangen.

Recente artikelen

Uitgevers en OpenAI ondertekenen overeenkomsten om de informatiestroom die door kunstmatige intelligentie wordt verwerkt, te reguleren

Afgelopen maandag maakte de Financial Times een deal met OpenAI bekend. FT geeft licenties voor haar journalistiek van wereldklasse...

April 30 2024

Online betalingen: hier is hoe streamingdiensten u voor altijd laten betalen

Miljoenen mensen betalen voor streamingdiensten en betalen maandelijkse abonnementskosten. De algemene mening is dat je…

April 29 2024

Veeam biedt de meest uitgebreide ondersteuning voor ransomware, van bescherming tot respons en herstel

Coveware by Veeam zal responsdiensten op het gebied van cyberafpersingsincidenten blijven leveren. Coveware zal forensische en herstelmogelijkheden bieden...

April 23 2024

Groene en digitale revolutie: hoe voorspellend onderhoud de olie- en gasindustrie transformeert

Voorspellend onderhoud zorgt voor een revolutie in de olie- en gassector, met een innovatieve en proactieve benadering van fabrieksbeheer.…

April 22 2024