如何在删除模型时触发 Laravel (5.6) 事件?
How to fire Laravel (5.6) Event when Model is deleted?
我试图在用户从系统中删除时触发一个事件,但我认为它删除我的用户的速度太快,所以我的事件无法正常工作。我要做的是在删除用户时进行广播。
这是控制器:
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 特征。
SerializesModels 是一种特征,它仅在事件(或作业)序列化时存储模型的 ID,并在事件未序列化时从数据库中重新获取模型。
这允许排队的进程在 运行 时从数据库中获取新模型,因此它们不是 运行 过时的信息,但是当您从中删除该行时,这将不可靠数据库。
我试图在用户从系统中删除时触发一个事件,但我认为它删除我的用户的速度太快,所以我的事件无法正常工作。我要做的是在删除用户时进行广播。
这是控制器:
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 特征。
SerializesModels 是一种特征,它仅在事件(或作业)序列化时存储模型的 ID,并在事件未序列化时从数据库中重新获取模型。
这允许排队的进程在 运行 时从数据库中获取新模型,因此它们不是 运行 过时的信息,但是当您从中删除该行时,这将不可靠数据库。