@yellow_pus

Почему не работает observer?

У меня есть обсервер UserObserver в котором
public function created(User $user)
    {
        Mail::send(['text'=>'mail'],['name','test'], function ($message){
            $message->to('efremovsergey09@gmail.com','Laravel api test project')->subject('Вы создали аккаунт');
            $message->from('efremovsergey09@gmail.com','Laravel api test project');
        });
    }
Так же, как указанно в документации, я зарегал обсервер в EventServiceProvider
public function boot()
    {
        User::observe(NewUserRegistered::class);
    }
Но несмотря на это, при добавлении нового юзера, этот обсервер не работает. Где я ошибся?
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
pLavrenov
@pLavrenov
Разработка сайтов
User::observe(UserObserver::class);

Там должен быть класс обсервера а не эвента(?).
И еще EventServiceProvider не очень подходит логически. Если зарегистрировать ObserverServiceProvider будет лучше.

Общая логика должна быть такая. Создание модели выполняет created обсервера, в created инициируется эвент на который подписан листенер. а вот в листенере и выполняется отправка почты.
Вызов эвента можно инициировать сразу через модель без прокладки обсервера через protected $events.
Еще есть способ для совсем наркоманов через eloquent.created event.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы