Неопределенная переменная уведомления Laravel: пользователь

#php #laravel

#php #ларавель

Вопрос:

Когда я пытаюсь отправить электронное письмо зарегистрированному пользователю, я получаю следующую ошибку:

 Undefined variable: user (View: ......resourcesviewsmailuserloggedIn.blade.php)
 

Код

Notification

 class UserLoggedIn extends Notification
{
    use Queueable;
    protected $user;
    protected $ip;

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

    public function via($notifiable)
    {
        return ['mail'];
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)->markdown('mail.user.loggedIn');
    }
    
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}
 

Email blade

 @component('mail::message')
  # Dear {{$user['name']}}
@endcomponent
 

controller

 $user = User::where('email', $this->email)->first();
$user->notify((new UserLoggedIn($user, Request::ip())));
 

Есть какие-нибудь идеи?

Ответ №1:

Решаемая

По-видимому, нам также нужно добавить переменные в представление

 return (new MailMessage)->markdown('mail.user.loggedIn', ['user' => $this->user, 'ip' => $this->ip]);
 

['user' => $this->user, 'ip' => $this->ip]