我在模型User上有一个问题,我正在插入记录批量,但是观察者在这些情况下不起作用,它不会检测到它的create,update,delete事件,但是如果我使用create,那么它可以完美地工作,并且其他任何工作都可以接受。如果在这些情况下有任何帮助,将不胜感激。
模型App / User.php
$raw_data = [
[
'name' => 'stackoverflow'
],
[
'name' => 'stackoverflow1'
],
];
User::insert($raw_data);
答案 0 :(得分:1)
这是因为未触发保存和 updated 事件(批量更新时)。请参阅doc:
通过Eloquent发布批量更新时,不会为已更新的模型触发已保存和已更新的模型事件。这是因为发布批量更新时从未真正检索过模型。
您无能为力。除非您使用循环进行创建。
答案 1 :(得分:0)
正如@salah所说,进行大规模操作时无法触发事件。作为解决方法,您可以尝试:
$raw_data = [
[
'name' => 'Jane Doe'
],
[
'name' => 'John Doe'
],
];
collect($raw_data)
->each(function ($data) {
User::create($data);
});