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.

Articoli correlati
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

Reply ottiene 4 Oracle EMEA Cluster Partner Awards nelle categorie Innovation, Business Impact e Customer Success

Reply, società di consulenza e system integrator a livello globale e Oracle Cloud Managed Service Provider, annuncia di aver ricevuto…

19 Settembre 2023

MasterZ, il Master su Blockchain e WEB 3.0 piu grande d’Europa, lancia una nuova piattaforma dedicata all’apprendimento, alla pratica e al lavoro

MasterZ Blockchain, aumenta il valore per il Master d’ eccellenza WEB 3.0 più grande d' Europa. Il team tutto italiano…

19 Settembre 2023

Lo Zayed Sustainability Prize annuncia 33 finalisti che promuovono iniziative di sostenibilità globale

33 finalisti selezionati tra 5.213 candidature in 163 paesi I finalisti sostengono un'azione climatica incisiva e supportano l'accesso all'energia pulita,…

18 Settembre 2023

Tendenze emergenti e innovazioni nella ricerca biologica: dal banco al letto del paziente

I prodotti biologici si sono evidenziati come una classe farmaceutica innovativa, rivoluzionando il campo della medicina attraverso terapie mirate. A…

17 Settembre 2023

3D Systems semplifica la produzione e promuove l’innovazione continua mediante l’internalizzazione della produzione di piattaforme di stampa aggiuntive

L'internalizzazione delle stampanti per la produzione di metalli e polimeri negli stabilimenti di Riom, Francia e Rock Hill, Carolina del…

17 Settembre 2023

Biognosys presenta innovazioni tecnologiche e progressi scientifici per rendere il proteoma utilizzabile per la ricerca sulle scienze della vita al Congresso mondiale HUPO 2023

L'analisi dei dati senza librerie e potenziata dall'apprendimento automatico con Spectronaut ® 18 offre quantificazione e produttività delle proteine ​​leader del settore…

16 Settembre 2023

Mattermost lancia nuove partnership per favorire una maggiore innovazione e adozione nel settore pubblico

Mattermost presenta un ecosistema ampliato di alleati con un'enfasi sui nuovi casi d'uso del Dipartimento della Difesa per le soluzioni…

16 Settembre 2023

United Cloud, il polo per l’innovazione in più rapida crescita dell’Europa sud-orientale, seleziona Verimatrix XTD per la protezione delle app mobili

La piattaforma di punta TV 2.0 di United Cloud, estremamente popolare con il nome commerciale EON TV, acquisisce potenti difese…

14 Settembre 2023

Armis presenta Armis Centrix™, la piattaforma di gestione dell’esposizione informatica alimentata dall’IA

Armis Centrix™ consente alle organizzazioni di vedere, proteggere e gestire tutte le risorse virtuali, garantendo la difesa e la gestione…

13 Settembre 2023

Nanotecnologia nella somministrazione di farmaci oculari: piccole soluzioni per grandi sfide

La nanotecnologia ha inaugurato una nuova era nella somministrazione di farmaci oculari, offrendo soluzioni piccole ma potenti per superare sfide…

13 Settembre 2023