我必须批量保存数据。数据正在保存,但观察者无法正常工作。我尝试了观察者的所有方法(创建,创建,保存,保存),但没有响应。
foreach( $departments as $department) {
$data[] = [
'department_id' => $department,
'name' => $name,
'description' => $description,
];
}
if(count($data) > 0) {
JobDescription::insert($data);
}
namespace App\Observers;
use Auth;
class JobDescriptionObserver
{
public function created($model)
{
echo 'created';
die;
}
}
答案 0 :(得分:2)
此行为是预期的,并以红色警告记录:
通过Eloquent发布批量更新时,
saved
和updated
对于更新的模型,不会触发模型事件。这是因为 发出批量更新时,从不实际检索模型。
这是因为Eloquent为批量插入/更新语句生成的基础SQL查询是非常不同的,并且不允许其获取行ID。
如果需要事件,则必须一个一个地保存模型:
foreach($departments as $department) {
Jobdescription::create([
'department_id' => $department,
'name' => $name,
'description' => $description,
]);
}