Déclencher le même événement de modèle deux fois
Question
J'ai affaire au code suivant :
// BaseModel
abstract class BaseModel extends Eloquent {
public static function boot()
{
parent::boot();
static::saving(function($model)
{
echo 'Fired BaseModel';
});
}
}
// Project (extends BaseModel)
class Project extends BaseModel {
public static function boot()
{
parent::boot();
static::saving(function($model)
{
echo 'Fired Project';
});
}
}
Lors de l'enregistrement de données nouvelles/existantes dans le modèle de projet, cela me donne uniquement Fired BaseModel
.Il ne déclenche pas du tout l'événement de sauvegarde sur le modèle de projet.Existe-t-il un moyen de surmonter cette limitation ?
La solution
Déclenchez d'abord l'événement enfant avant d'appeler l'événement parent pour le résoudre
// Project (extends BaseModel)
class Project extends BaseModel {
public static function boot()
{
static::saving(function($model)
{
echo 'Fired Project';
});
parent::boot();
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow