web-dev-qa-db-fra.com

Laravel: comment créer une fonction après ou avant enregistrer | mettre à jour

J'ai besoin de générer une fonction à appeler après ou avant save () ou update () mais je ne sais pas comment faire. Je pense que j'ai besoin d'un rappel de save () update () mais je ne sais pas comment faire. Merci

27
Daniele Longheu

Dans votre modèle, vous pouvez ajouter une méthode boot () qui vous permettra de gérer ces événements.

Par exemple, avoir le modèle User.php:

class User extends Model 
{

    public static function boot()
    {
        parent::boot();

        self::creating(function($model){
            // ... code here
        });

        self::created(function($model){
            // ... code here
        });

        self::updating(function($model){
            // ... code here
        });

        self::updated(function($model){
            // ... code here
        });

        self::deleting(function($model){
            // ... code here
        });

        self::deleted(function($model){
            // ... code here
        });
    }

}

Vous pouvez consulter tous les événements disponibles par ici: https://laravel.com/docs/5.2/eloquent#events

73
Mauro Casas

Créer un fournisseur en utilisant cette commande

php artisan make:provider ProviderClassName

puis définissez les rappels pour les modèles en fonction de démarrage

Model::created(function($model){
  //Do you want to do
});

Liste des rappels disponibles:

Model::creating(function($model){});
Model::updated(function($model){});
Model::updating(function($model){});
Model::deleted(function($model){});
Model::deleting(function($model){});
Model::saving(function($model){});
Model::saved(function($model){});
9
Rohit Khatri