Задать вопрос
@dch3

Как передать аутентифицированного пользователя в job очереди Laravel?

При аутентификации пользователя, хочу передать в очередь отправку сообщений.
Метод контроллера:
namespace App\Http\Controllers;
...
public function login(Request $request)
    {
        $data = $request->validate([
            'email' => ['required', 'email'],
            'password' => ['required', 'min:5', 'max:10', 'confirmed']
        ]);

        if (Auth::attempt($data, $request->input('remember'))) {

            $request->session()->regenerate();

            SendEmail::dispatch(Auth::user());

            return redirect()->route('web.main');
        }
        return to_route('login')->withErrors(['fail-login' => 'Пользователь не найден']);
    }


класс джоба, который выполняется в очереди и который собственно и отправляет письмо:
namespace App\Jobs;
...

class SendEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $user;

    public function __construct($user)
    {
        $this->user = $user;
    }

    public function handle(): void
    {
        event(new Registered($this->user)); 
    }
}


Слушатель события "Registered" отправляет письмо, если пройдена проверка
if ($event->user instanceof MustVerifyEmail && ! $event->user->hasVerifiedEmail()) {
            $event->user->sendEmailVerificationNotification();}


У меня отправки письма не происходит, т.к. не выполняется условия выше (пользователь не реализует контракт "MustVerifyEmail"). Почему так? Я ведь передал аутентифиц. пользователя из метода контроллера в методе dispatch()
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@iljaGolubev
пользователь не реализует контракт "MustVerifyEmail"

Ну так реализуйте.
class User extends Authenticatable implements MustVerifyEmail
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽