关于 Laravel Model Deleted 事件
在使用 $result = $user->delete()
时, 在UserObserver的 deleted
方法中执行 Job 队列, 都执行成功了, 但是会执行 User::findOrFail($id)
, 造成500错误, 这个算不算是一个BUG? 目前我的解决方案是在 deleteing
方法中执行
具体就是我在 UserController 进行了 delete() 操作,
然后 UserObserver 又调用了 Job 队列, 会报 500 错误 findOrFail($id)
UserController 内容
class UserController extends Controller
{
public function destroy($id)
{
$result = User::findOrFail($id);
if ($result->delete()) {
return 'Success';
}
return 'Failed';
}
}
UserObserver 内容
class UserObserver
{
public function deleted(User $user)
{
UserJob::dispatch($user);
}
}
UserJob 内容
class UserJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function handle()
{
Log::info($this->user);
}
}
推荐文章: