当用户从系统中删除时,我试图触发一个事件,但我认为它删除我的用户太快了,所以我的事件不起作用。我要做的是在删除用户时进行广播。
这是 Controller :
public function destroy($id)
{
$user = new User();
$user = $user->find($id);
broadcast(new UserWasDeleted($user, Auth::user()))->toOthers();
$user->delete();
return response([
'status' => 'success',
'message' => 'The user was successfully deleted.'
], 200);
}
如果我删除 $user->delete(); 这将成功广播。线,并且当它在那里时不会广播。
我什至尝试为事件设置监听器,并删除监听器中的用户。它删除了用户,但仍然不广播。
最佳答案
SerializesModels trait 需要从处理已删除模型的事件中删除。
SerializesModels 是一个 trait,它只在事件(或作业)序列化时存储模型的 id,并在事件未序列化时从数据库重新获取模型。
这允许排队的进程在运行时从数据库中获取新模型,因此它们不会以过时的信息运行,但是当您从数据库中删除该行时,这将不可靠。
关于laravel - 删除模型时如何触发 Laravel (5.6) 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51065034/