我在控制器中有这样的代码:
for($i=0; $i<$number_of_tourists; $i++) {
$tourist = Tourist::updateOrCreate(['doc_number' => $request['doc_number'][$i]],
$tourist_to_update);
}
因此,updateOrCreate 方法可以 1) 更新记录,2) 创建新记录 3) 如果 $tourist_to_update 等于数据库中已有的记录,则保持记录不变。
我只想将 $tourist_to_update 保存到 $array[] 中,仅在更新“旅游”表中的记录时(而不是在创建新记录或没有任何更改时)。
据我所知,有一些 Eloquent 事件https://laravel.com/docs/5.4/eloquent#events 有更新和更新的事件,这似乎符合我的需求。
问题是我看了和阅读了几个教程,但仍然不明白如何使用它们。
我知道如何在 Tourist 模型中注册 Eloquent 事件:
protected static function boot()
{
parent::boot();
static::updating(function ($model) {
});
}
谁能解释我如何通过 Eloquent 事件实现我的目标?
先感谢您。