码迷,mamicode.com
首页 > 其他好文 > 详细

Laravel Model 事件使用注意事项

时间:2019-10-17 14:04:02      阅读:417      评论:0      收藏:0      [点我收藏+]

标签:处理   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 模型数据不变,点击更新这样的逻辑,放在控制器方法中,而不应放在模型的事件中

Laravel Model 事件使用注意事项

标签:处理   obs   update   booth   mod   位置   模型   方法   控制器   

原文地址:https://www.cnblogs.com/mouseleo/p/11691449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!