在Laravel的Eloquent模型中,create、update、delete、save等方法都会触发对应的事件,如creating、created、updating、updated、deleting、deleted、saving、saved等。

其中,像create可以直接触发creating和created事件,但是需要注意的是update事件,假设这样使用:

$this->where(xxx)->update(xxx)

它是不会触发updating和updated事件的。

查阅文档后发现,需要先获取模型再进行对应的操作,才能触发对应的模型事件。

例如改动如下:

$this->where(xxx)->first()->update(xxx)

或

$this->find(xxx)->update(xxx)

也就是先获取实例再update即可。