在laravel中查找和火灾更新事件的位置之间的差异

时间:2017-05-17 08:41:56

标签: php laravel

当我尝试使用Eloquent事件(更新)时,它对我很好,但我注意到当我写这个查询时事件没有被解雇

Samples::where('id', $id)->update($inputs);

但是当我写这个

时它会起作用
Samples::find($id)->update($inputs);

这是我的更新活动

  public static function boot()
    {
        static::updating(function ($model) {
          dd('it works !');
        parent::boot();
    }

1 个答案:

答案 0 :(得分:3)

您的第一个代码将直接生成UPDATE查询并将其发送到数据库。它永远不会加载任何模型。

第二个代码将首先执行SELECT查询以填充模型,然后使用收到的数据执行UPDATE查询。

这就是为什么第一个查询永远不会激活您的更新事件。