Php 拉威尔模型赛获胜';t火
我正在使用ajax更新我的模型Php 拉威尔模型赛获胜';t火,php,laravel,events,laravel-5,Php,Laravel,Events,Laravel 5,我正在使用ajax更新我的模型用户,ajax部分工作正常,因为数据在数据库中成功更新,在我的控制器操作中,由以下人员执行更新: $user->update($data); 不起作用的部分: 我在我的模型中使用了boots方法updated,例如: class User extends BaseModel { ... public static function boot() { parent::boot(); self::upd
用户
,ajax部分工作正常,因为数据在数据库中成功更新,在我的控制器操作中,由以下人员执行更新:
$user->update($data);
不起作用的部分:
我在我的模型中使用了boot
s方法updated
,例如:
class User extends BaseModel
{
...
public static function boot()
{
parent::boot();
self::updated(function($model){
Log::info("updated");
dd($model);
});
}
}
这件事从来没有发生过,我不知道为什么
问题:
我试图在模型更新后执行操作,但事件未触发。您正在静态访问函数: 相反,尝试使用
self::updated(function($model){
Log::info("updated");
dd($model);
});
以下是手册中的说明 通过Eloquent发布大规模更新时,不会为更新的模型触发已保存和更新的模型事件。这是因为在发布大规模更新时,从未实际检索模型 您需要使用
save
来触发事件。比如:
$user->fill($data);
$user->save();
当然,这是假设
$user
是一个模型,而不是查询生成器实例 我要把这部分放在哪里?它应该在某个函数中,不是吗?只需在当前代码中将static改为self即可