Modelli Laravel: eseguire azioni automatiche quando i dati vengono creati, aggiornati o eliminati

Modelli Laravel: eseguire azioni automatiche quando i dati vengono creati, aggiornati o eliminati

Inviare una notifica all'amministratore quando un nuovo utente si registra.


Registrare ogni modifica apportata a un prodotto


Eliminare i vecchi file dall'archivio quando viene rimosso un record


Invece di ripetere queste attività nel controller o nel livello di servizio, i modelli laravel di Eloquent offrono una soluzione più pulita e di più facile gestione.


Scopriamo insieme cosa sono gli eventi modello, come utilizzarli e perché vale la pena implementarli nei progetti Laravel.


Cosa sono gli eventi modello eloquenti

In Laravel, gli Eloquent Models consentono di agganciarsi a determinati eventi che vengono attivati automaticamente durante l'interazione con il database.


Ecco alcuni degli eventi più comuni:


- created→ dopo che un modello è stato creato
- updated→ dopo che un modello è stato aggiornato
- deleted→ dopo che un modello è stato eliminato
- saving→ prima che un modello venga creato o aggiornato
- retrieved→ quando un modello viene recuperato dal database

Grazie a questi eventi è possibile automatizzare attività come l'invio di e-mail, la registrazione di attività o la pulizia di file, il tutto senza appesantire il codice del controller.


Perché utilizzare gli eventi modello?

Ecco perché dovresti prendere in considerazione l'utilizzo di eventi modello nella tua applicazione Laravel:


- Struttura del codice più pulita
Mantiene il controller libero da logica non correlata.
- DRY (Non ripeterti):
non ripetere più la stessa logica in più punti.
- Scalabile e manutenibile.
Più facile da gestire man mano che la tua applicazione cresce.
- Ottimo per l'automazione.
Perfetto per attività in background come notifiche, registrazione o pulizia.
Come utilizzare gli eventi modello
1. Direttamente nel modello ( booted()metodo)

Esempio: si desidera registrare ogni volta che un elemento Postviene creato, aggiornato o eliminato.


// app/Models/Post.php

class Post extends Model
{
protected static function booted()
{
static::created(function ($post) {
Log::info('Post created: ID ' . $post->id);
});
static::updated(function ($post) {
Log::info('Post updated: ID ' . $post->id);
});
static::deleted(function ($post) {
Log::info('Post deleted: ID ' . $post->id);
});
}
}

Semplice ed efficace.


2. Utilizzo di un observer (per una logica più pulita e scalabile)
a. Creare un observer
php artisan make:observer PostObserver --model=Post
b. Aggiungere metodi di evento
// app/Observers/PostObserver.php

class PostObserver
{
public function created(Post $post)
{
Log::info('Observer: Post created! ID ' . $post->id);
}
public function updated(Post $post)
{
Log::info('Observer: Post updated. ID ' . $post->id);
}
public function deleted(Post $post)
{
Log::info('Observer: Post deleted. ID ' . $post->id);
}
}



c. Registrare l'observer
// app/Providers/AppServiceProvider.php

public function boot()
{
Post::observe(PostObserver::class);
}
Ercole Palmeri
#PHPTutorial #softwaredesign #SoftwareDeveloper #tutorialdilaravelPHP https://bloginnovazione.it/modelli-laravel/54379/

Commenti

Post popolari in questo blog

Come impostare i giorni lavorativi in ​​Microsoft Project: calendario di progetto

Power Point: cosa sono e come si usano le animazioni e le transizioni

Cyber Guru prosegue la sua espansione oltralpe con l’acquisizione della francese Mantra