标签:处理 obs update booth mod 位置 模型 方法 控制器
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->observer
3 结论
3.1 update 事件用来处理 model changed 的逻辑
3.2 模型数据不变,点击更新这样的逻辑,放在控制器方法中,而不应放在模型的事件中
标签:处理 obs update booth mod 位置 模型 方法 控制器
原文地址:https://www.cnblogs.com/mouseleo/p/11691449.html