1 触发条件
1.1 updating
1.1.1 如果字段无变化,不会触发此事件。
1.1.2 除非更改至少一个字段的值
2 事件逻辑不会覆盖
2.1 Trait 中定义事件如下
/** * The boot method. */public static function bootHasArchive(){ static::creating(function ($model) { Log::info(__FILE__); }); static::updating(function ($model) { Log::info(__FILE__); }); static::deleting(function ($model) { if ($archive = $model->archive) { $archive->delete(); } });} 2.2 Observer 中定义事件如下:
public function creating(News $news){ Log::info(__FILE__);} public function updating(News $news){ Log::info(__FILE__);} 2.3 两个位置定义的逻辑都会执行2.4 顺序是: trait->observer3 结论3.1 update 事件用来处理 model changed 的逻辑3.2 模型数据不变,点击更新这样的逻辑,放在控制器方法中,而不应放在模型的事件中
原文地址:https://www.cnblogs.com/mouseleo/p/11691449.html
时间: 2024-08-09 05:11:39