Articles

Què és Laravel Eloquent, com utilitzar-lo, tutorial amb exemples

El framework PHP de Laravel inclou Eloquent Object Relational Mapper (ORM), que proporciona una manera extremadament fàcil de comunicar-se amb una base de dades. 

Laravel i Eloquent ajuden a accelerar el desenvolupament d'aplicacions i plataformes, proporcionant una solució adequada a la majoria dels problemes. Els requisits s'aborden amb un desenvolupament més ràpid, així com amb un codi ben organitzat, reutilitzable, mantenible i escalable. 

Com funciona Eloquent

Els desenvolupadors poden treballar-hi Eloquent amb múltiples bases de dades de manera eficient utilitzant una implementació ActiveMethod. És un patró arquitectònic on el model creat a l'estructura Model-View-Controller (MVC) correspon a una taula de la base de dades. L'avantatge és que les plantilles realitzen operacions de base de dades habituals sense codificar consultes SQL llargues. Les plantilles us permeten consultar dades en taules i inserir nous registres a les taules. El procés de sincronització de diverses bases de dades que s'executen en diferents sistemes s'agilitza. No cal escriure consultes SQL. Tot el que has de fer és defiAcabeu les taules de la base de dades i les relacions entre elles, i Eloquent farà la resta de la feina.

Preparació de Laravel

Apreciar la utilitat d'Eloquent ORM i entendre l'ecosistema és imprescindible. Passos per començar:

  1. Instal·leu Laravel des de getcomposer.org, per fer-ho seguiu les instruccions aquí
  2. Crear migration utilitzant la consola Artisan
  3. Crea plantilles eloquent
  4. córrer i seed de la base de dades

Artisan Console és el nom de la interfície de línia d'ordres inclosa a Laravel. Proporciona un conjunt d'ordres útils per utilitzar durant el desenvolupament de l'aplicació. Està impulsat pel component potent Symfony Console.

Per veure una llista de totes les ordres d'Artisan disponibles, podeu utilitzar l'ordre list:

php artisan list

Totes les ordres inclouen una descripció concisa dels seus arguments i opcions. Això es mostra en una pantalla d'"ajuda". Per mostrar una pantalla d'ajuda, només cal que precediu el nom de l'ordre amb "ajuda" com es mostra:

php artisan help migrate

Migration

La migració és un procés de gestió de bases de dades escrivint PHP SQL. Proporciona una manera d'afegir control de versions a la base de dades. 

Per crear una migració, només cal que executeu l'ordre següent:

php artisan make:migration create_student_records

Això crea el fitxer de migració. Al vostre editor de text, obriu el fitxer que acabeu de crear a la carpeta 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');
    }
}

El codi és una classe amb el mateix nom "create student records', i té dos mètodes: amunt i avall. El mètode up ha de fer canvis a la base de dades; així que cada vegada que migreu la vostra base de dades, s'executarà qualsevol codi del mètode up. D'altra banda, el mètode down hauria de revertir els canvis de la base de dades; així que sempre que executeu el rollback de migration, el mètode down hauria de desfer el que va fer el mètode up. Dins del mètode up hi ha el creador d'esquemes utilitzat per crear i manipular les taules. Què passa si cancel·leu algunes de les vostres migracions? Tot el que heu de fer és implementar la següent comanda:

php artisan migrate:rollback

I recollirà l'últim migration que s'ha implementat. A més, podeu restaurar completament la base de dades executant:

php artisan migrate:reset

Això cancel·larà totes les vostres migracions.

Defició de models de Eloquent

Un cop finalitzada la migració de la base de dades, el següent procés és el seedingEloquent entra en joc des del seeding està inserint registres a la nostra base de dades. Per tant, haureu de crear les plantilles abans d'omplir la base de dades. Cada taula de base de dades té un model corresponent que s'utilitza per interactuar amb aquesta taula. Les plantilles us permeten consultar les dades de les vostres taules, així com inserir nous registres a la taula. La manera més senzilla d'instanciar el model és utilitzar l'ordre següent:

php artisan make:model Student
A continuació es mostra un exemple de plantilla Student, que es pot utilitzar per recuperar i emmagatzemar informació de la taula de bases de dades del nostre estudiant:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Quan genereu un model i al mateix temps voleu generar una migració de base de dades, podeu utilitzar l'opció –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Sembradors

Els sembradors generals són un conjunt especial de classes que ens permeten omplir la nostra base de dades una i altra vegada amb exactament les mateixes dades. Implementem la següent comanda:

php artisan make:seeder StudentsRecordSeeder

A l'editor de text, a la carpeta de llavors, obriu el fitxer creat recentment amb el nom del fitxer: StudentsRecordSeeder.php. Com podeu veure, aquesta és només una classe molt senzilla amb un únic mètode anomenat run🇧🇷

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

El codi és només un embolcall al voltant d'una classe d'ordres de consola, dissenyada específicament per ajudar-vos amb la tasca de seeding. Editeu el codi i després deseu-lo.

Butlletí d'innovació
No et perdis les notícies més importants sobre innovació. Registra't per rebre'ls per correu electrònic.
public function run()
{
    echo 'Seeding!';
}

I anant al terminal:

php artisan db:seed --class=StudentsRecordSeeder

Ara podeu omplir la taula amb algunes entrades i executar:

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

Aquí podeu seguir suprimint, afegint, modificant entrades a la base de dades i després restaurant-les amb una ordre senzilla.

CRUD amb Laravel Eloquent

Les operacions CRUD amb el mapeador relacional d'objectes (ORM) Eloquent de Laravel faciliten als desenvolupadors de Laravel treballar amb diverses bases de dades. Realitza operacions de creació, lectura, actualització i supressió (CRUD) i mapeja models d'objectes a taules de bases de dades. Gestiona totes les interaccions de la base de dades necessàries per a les operacions CRUD.

Creació de registres

Podeu utilitzar el mètode ::create per inserir un registre nou a la base de dades.

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

A més del mètode de creació senzill que es mostra més amunt, també podeu crear un objecte nou i donar-li diferents atributs. Aleshores, podeu cridar a la funció save() i executar el codi. Mètodes com firstOrCreate() o firstOrNew() són altres opcions per crear registres. Aquests et permetran trobar un alumne amb determinats atributs; si no es troba aquest estudiant, el creareu a la base de dades o creareu una instància nova.

Lectura de registres

Amb Eloquent ORM, podeu trobar registres a la vostra base de dades. Les consultes es construeixen simplement i ofereixen un flux fluid. Per crear declaracions:where, utilitzaràs els mètodes get() I first(). El mètode first() només retornarà un registre, mentre que el mètode get() retornarà una matriu de registres en bucle. També, el mètode find() es pot utilitzar amb una matriu de claus primàries, que retornarà una col·lecció de registres coincidents. Aquests són alguns exemples:

$student = Students::all();

Aquest codi obté tots els estudiants. Tot i que el codi següent troba un estudiant específic per ID:

$estudiant = Estudiants::find(1);

A més, com es mostra a continuació, el codi descriu la cerca d'un estudiant en funció d'un atribut específic.

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

Per al mètode get(), aquest codi mostra com trobar un estudiant amb un nivell superior a 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Actualització del registre

Actualitzar registres amb Eloquent és igual de senzill. Per actualitzar un registre, només cal que cerqueu el registre que voleu actualitzar, editeu els atributs i deseu-lo. Per exemple, per canviar el nivell de grau de l'alumne de John Doe a 5, primer cerqueu l'alumne i després executeu el mètode de desar.

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

El mètode de desar també es pot utilitzar per actualitzar models que ja existeixen a la base de dades.

Eliminar registres

Eloquent presumeix del seu fàcil procés d'actualització de registres, però té la mateixa història amb la supressió. Hi ha dues opcions: extreure registres i executar el mètode d'eliminació, o simplement utilitzar el mètode destroy. Per trobar i suprimir un registre, només cal que executeu les ordres següents:

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

Per suprimir un registre i diversos registres, s'executen les ordres:

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

Tingueu en compte que els paràmetres de destruir només són claus primàries a diferència del mètode de supressió que pot acceptar qualsevol columna de base de dades.

Per cercar i suprimir tots els estudiants superiors al nivell 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Butlletí d'innovació
No et perdis les notícies més importants sobre innovació. Registra't per rebre'ls per correu electrònic.

Articles recents

Intervenció innovadora en Realitat Augmentada, amb un visor Apple al Policlínic de Catània

Es va realitzar una operació d'oftalmoplàstia amb el visualitzador comercial Apple Vision Pro a la Policlínica de Catània...

3 maig 2024

Els avantatges de les pàgines per pintar per a nens: un món de màgia per a totes les edats

El desenvolupament de la motricitat fina a través del color prepara els nens per a habilitats més complexes com escriure. Per acolorir...

2 maig 2024

El futur és aquí: com la indústria naviliera està revolucionant l'economia global

El sector naval és una veritable potència econòmica mundial, que ha navegat cap a un mercat de 150 milions...

1 maig 2024

Els editors i OpenAI signen acords per regular el flux d'informació processada per la Intel·ligència Artificial

Dilluns passat, el Financial Times va anunciar un acord amb OpenAI. FT autoritza el seu periodisme de classe mundial...

30 2024 abril