Salta al contenuto principale

Creare, aggiornare e cancellare records nel database attraverso i Modelli di Eloquent

Profile picture for user luca77king

In questa lezione vedremo come usare i Modelli di Eloquent per le operazioni di creazione e aggiornamento nel database.

Creazione nuovo record

Per la creazione di un nuovo record abbiamo due opzioni:

Istanziare il modello e poi salvare il dato nel database

Salvare il dato direttamente nel database

Entrambe le soluzioni sono valide, sarà compito nostro, in un contesto operativo, valutare l’opzione migliore.

Metodo 1

$name = 'Nuovo produttore';
$producer = new Producer(['name' => $name]);
$producer->save();

Metodo 2

$name = 'Nuovo produttore';
$producer = Producer::create(['name' => $name]);

Modifica record

Anche per l’aggiornamento di un record abbiamo due possibili soluzioni tra cui scegliere

Istanziare il modello con l’id corretto, aggiornare le proprietà e salvare il record aggiornato

Usare il metodo update() per aggiornare direttamente il record

Metodo 1

$id = 1;
$producer = Producer::findOrFail($id);
$producer->name = 'Nuovo nome del produttore'
$producer->save();

Metodo 2

$id = 1;
Producer::findOrFail($id)->update(['name' => 'Nuovo nome del produttore']);

Qui forse mi sento di dare un consiglio più pratico: se le proprietà che dobbiamo aggiornare sono molte, conviene usare il secondo approccio. Ma solo per una questione di tempo.

Cancellazione record

Indovinate un pò…anche qui abbiamo a disposizione due metodi

Il metodo destroy() che funziona solo per il Query Builder di Eloquent

Il metodo delete() che funziona solo per l’istanza del modello

Metodo 1

Producer::where('id', '>', 10)->destroy();

Metodo 2

$producers = Producer::where('id', '>', 10)->get();
foreach($producers as $producer) {
    $producer->delete();
}