我无法启动模型启动事件。这是最基本的口才功能,所以我确定这可能是我在这里搞砸的简单事情。
当我运行此代码时:
User::create(['email'=>'test@example.com']);
或此代码:
(new User)->fill(['email'=>'test@example.com'])->save();
然后,我希望saving
事件方法在模型中被触发,但是永远不会:
class User extends Authenticatable
{
use HasImage;
protected $guarded = [];
public static function boot()
{
parent::boot();
static::saving(function (User $user) {
dd('user saving is never triggered');
});
}
}
是的,这正是我正在使用的代码。没有比这更基本的了。
如果我添加模型特征,它们也不会执行它们的启动事件,但是bootHasImage
仍称为:
trait HasImage
{
protected static function bootHasImage()
{
dd('this will be hit on boot');
static::saved(function (self $model) {
dd('this is never hit on model save');
});
}
}
要使该特质saved
事件起作用,我还必须将其直接移至UserObserver
。
这可能是怎么回事?
答案 0 :(得分:0)
如果要使用大量可分配属性,请记住在用户模型上设置$ fillable选项。
protected $fillable = [
'email'
];