Как запустить Laravel (5.6) Событие, когда Модель удалена? - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь запустить Событие, когда Пользователь удален из системы, но я думаю, что он удаляет моего пользователя слишком быстро, поэтому мое Событие не работает. То, что я хочу сделать, это трансляция, когда пользователь удален.

Вот контроллер:

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 (); и не транслируется, когда он там.

Я даже пытался настроить прослушиватель для события и удалить пользователя в прослушивателе. Он удаляет пользователя, но по-прежнему не транслирует.

1 Ответ

0 голосов
/ 27 июня 2018

Черта SerializesModels должна быть удалена из событий, связанных с удаленными моделями.

SerializesModels - это признак, который сохраняет идентификатор модели только при сериализации события (или задания) и повторно выбирает модель из базы данных, когда событие не сериализовано.

Это позволяет процессам в очереди получать свежую модель из базы данных, когда они работают, поэтому они не работают с устаревшей информацией, но это не будет надежным, когда вы удаляете эту строку из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...