Articoli

Cos’è Laravel Eloquent, come si usa, tutorial con esempi

Il framework PHP Laravel include Eloquent Object Relational Mapper (ORM), che fornisce un modo estremamente semplice per comunicare con un database. 

Laravel e Eloquent aiutano a velocizzare lo sviluppo di applicazioni e piattaforme, fornendo una soluzione adeguata alla maggior parte dei problemi. I requisiti vengono affrontati con uno sviluppo più rapido, oltre a un codice ben organizzato, riutilizzabile, gestibile e scalabile. 

Come funziona Eloquent

Gli sviluppatori possono lavorare in Eloquent con più database in modo efficiente utilizzando un’implementazione ActiveMethod. È un modello architettonico in cui il modello creato nella struttura Model-View-Controller (MVC) corrisponde a una tabella nel database. Il vantaggio è che i modelli eseguono operazioni di database comuni senza codificare lunghe query SQL. I modelli consentono di eseguire query sui dati nelle tabelle e di inserire nuovi record nelle tabelle. Il processo di sincronizzazione di più database in esecuzione su sistemi diversi è semplificato. Non è necessario scrivere query SQL. Tutto quello che devi fare è definire le tabelle del database e le relazioni tra di loro, e Eloquent farà il resto del lavoro.

Preparazione di Laravel

Apprezzare l’utilità di Eloquent ORM, e comprendere l’ecosistema è un must. I passaggi per iniziare:

  1. Installa Laravel da getcomposer.org, per far questo segui le istruzioni leggendo qui
  2. Creare migration utilizzando la console Artisan
  3. Creare modelli eloquent
  4. eseguire i seed del database

Artisan Console è il nome dell’interfaccia della riga di comando inclusa in Laravel. Fornisce una serie di comandi utili da utilizzare durante lo sviluppo dell’applicazione. È guidato dal potente componente Symfony Console.

Per visualizzare un elenco di tutti i comandi Artisan disponibili, puoi utilizzare il comando list:

php artisan list

Tutti i comandi vengono forniti con una descrizione concisa dei suoi argomenti e opzioni. Questo è mostrato in una schermata di “aiuto”. Per visualizzare una schermata di aiuto, è sufficiente far precedere il nome del comando da “help” come mostrato:

php artisan help migrate

Migration

La migration è un processo di gestione del database scrivendo PHP anziché SQL. Fornisce un modo per aggiungere il controllo della versione al database. 

Per creare una migrazione, basta eseguire il seguente comando:

php artisan make:migration create_student_records

Questo crea il file di migrazione. Nel tuo editor di testo, apri il file appena creato nella cartella 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');
    }
}

Il codice è una classe con lo stesso nome ‘create student records‘, e ha due metodi: up e down. Il metodo up dovrebbe apportare modifiche al database; quindi ogni volta che esegui la migrazione del tuo database, verrà eseguito qualsiasi codice presente nel metodo up. D’altra parte, il metodo down dovrebbe ripristinare tali modifiche al database; quindi ogni volta che esegui il rollback della migration, il metodo down dovrebbe annullare ciò che ha fatto il metodo up. All’interno del metodo up c’è lo schema builder utilizzato per creare e manipolare le tabelle. Cosa succede se annulli alcune delle tue migrazioni? Tutto quello che devi fare è implementare il seguente comando:

php artisan migrate:rollback

E ritirerà l’ultima migration che è stata implementata. Inoltre, puoi ripristinare completamente il database eseguendo:

php artisan migrate:reset

Questo annullerà tutte le tue migrazioni.

Definizione di modelli di Eloquent

Al termine della migrazione del database, il processo successivo è il seedingEloquent entra in gioco poiché il seeding è l’inserimento di record nel nostro database. Quindi dovrai creare i modelli prima di popolare il database. Ogni tabella di database ha un modello corrispondente che viene utilizzato per interagire con tale tabella. I modelli ti consentono di interrogare i dati nelle tue tabelle, nonché di inserire nuovi record nella tabella. Il modo più semplice per creare un’istanza del modello è utilizzare il seguente comando:

php artisan make:model Student
Di seguito è mostrato un esempio di modello Student, che può essere utilizzato per recuperare e archiviare informazioni dalla tabella del database del nostro studente:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Quando si genera un modello e allo stesso tempo si desidera generare una migrazione del database, è possibile utilizzare l’opzione –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Seeders

I seeder complessivi sono un insieme speciale di classi che ci consentono di popolare il nostro database più e più volte con gli stessi dati esatti. Implementiamo il seguente comando:

php artisan make:seeder StudentsRecordSeeder

Nell’editor di testo, sotto la cartella seeds, apri il file appena creato con nome file: StudentsRecordSeeder.php. Come puoi vedere, questa è solo una classe molto semplice con un singolo metodo chiamato run().

<?php
use IlluminateDatabaseSeeder;

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

    public function run()
    {
        //
    }
}

Il codice è solo un involucro attorno a una classe di comandi della console, creata appositamente per aiutare con l’attività di seeding. Modifica il codice e poi salvalo.

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.
public function run()
{
    echo 'Seeding!';
}

E passando al terminale:

php artisan db:seed --class=StudentsRecordSeeder

Ora puoi popolare la tabella con alcune voci ed eseguire:

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

Qui puoi continuare a eliminare, aggiungere, modificare le voci nel DB, quindi ripristinarle con un semplice comando.

CRUD con Laravel Eloquent

Le operazioni CRUD con Laravel Eloquent object-relational mapper (ORM) rendono più facile per gli sviluppatori di Laravel lavorare con più database. Esegue operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD), nonché mappa i modelli di oggetti alle tabelle del database. Gestisce tutte le interazioni del database richieste per le operazioni CRUD.

Creazione di record

È possibile utilizzare il metodo ::create per inserire un nuovo record nel database.

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

Oltre al semplice metodo di creazione mostrato sopra, puoi anche creare un nuovo oggetto e assegnargli attributi diversi. Quindi, puoi chiamare la funzione save() ed eseguire il codice. Metodi come firstOrCreate() o firstOrNew() sono altre opzioni per la creazione di record. Questi consentiranno di trovare uno studente con determinati attributi; se quello studente non viene trovato, lo creerai nel database o creerai un’istanza di una nuova istanza.

Lettura record

Utilizzando Eloquent ORM, è possibile trovare record nel database. Le query sono costruite in modo semplice e offrono un flusso regolare. Per creare istruzioni ::where, utilizzerai i metodi get() e first(). Il metodo first() restituirà solo un record, mentre il metodo get() restituirà un array di record su cui è possibile eseguire il loop. Inoltre, il metodo find() può essere utilizzato con un array di chiavi primarie, che restituirà una raccolta di record corrispondenti. Ecco alcuni esempi:

$student = Students::all();

Questo codice ottiene tutti gli studenti. Mentre il codice seguente trova uno studente specifico per ID:

$studente = Studenti::find(1);

Inoltre, come mostrato di seguito, il codice descrive la ricerca di uno studente in base a un attributo specifico.

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

Per il metodo get(), questo codice mostra come trovare uno studente con un livello superiore a 5.

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

L’aggiornamento dei record utilizzando Eloquent è altrettanto semplice. Per aggiornare un record, basta trovare il record che si desidera aggiornare, modificare gli attributi e salvare. Ad esempio, per modificare il livello di grado dello studente di John Doe a 5, prima trova lo studente e poi esegui il metodo di salvataggio.

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

Il metodo save può essere utilizzato anche per aggiornare i modelli già esistenti nel database.

Eliminare i record

Eloquent vanta il suo facile processo di aggiornamento dei record, ma ha la stessa storia con l’eliminazione. Ci sono due opzioni: record pull-out ed esegui il metodo delete, o semplicemente usa il metodo destroy. Per trovare ed eliminare un record, esegui semplicemente i seguenti comandi:

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

Per eliminare un record e più record, vengono eseguiti i comandi:

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

Si noti che i parametri di destroy sono solo chiavi primarie a differenza del metodo delete che può accettare qualsiasi colonna del database.

Per trovare ed eliminare tutti gli studenti con livello superiore a 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Articoli recenti

Funzioni statistiche di Excel: Tutorial con esempi, terza parte

Excel fornisce un’ampia gamma di funzioni statistiche che eseguono calcoli dalla media alla distribuzione statistica più complessa e funzioni della…

18 Febbraio 2024

Che cos’è l’Industria 5.0 ? Differenze con Industria 4.0

Industria 5.0 è un termine usato per descrivere la prossima fase della rivoluzione industriale. Si concentra sul rapporto tra uomo e…

18 Febbraio 2024

Nanobiotix Announces Closing of the Remaining $4.8 Million Investment From Johnson & Johnson Innovation – JJDC, Inc.

PARIS and CAMBRIDGE, Mass., Dec. 04, 2023 (GLOBE NEWSWIRE) --  NANOBIOTIX (Euronext: NANO – NASDAQ: NBTX – “Nanobiotix” or the “Company”), a…

13 Febbraio 2024

Memebet: Transforming Online Poker with Blockchain Innovation and Rewarding Gameplay

New York, NY, Nov. 21, 2023 (GLOBE NEWSWIRE) -- In the dynamic realm of cryptocurrencies, Memebet emerges as the 2023…

13 Febbraio 2024