Переменные не передаются в шаблоне электронной почты - PullRequest
0 голосов
/ 03 марта 2019

У меня есть этот метод в моем контроллере

public function update(UserUpdateRequest $request)
{
        $request->user()->update([
            'name' => $request->username,
        ]);

        Mail::to($request->user())->send(
            new UserUpdated( $request->user() )
        );

        return redirect()->route('account.index');
}

Поэтому, когда пользователь обновляет имя пользователя, отправляется электронное письмо

public $user;

/**
 * Create a new message instance.
 *
 * @return void
 */
public function __construct(User $user)
{
    $this->user = $user;
}

/**
 * Build the message.
 *
 * @return $this
 */
public function build()
{
    return $this->markdown('emails.user.updated');
}

И это шаблон электронной почты

Hi {{ $user->username }},

We would like to inform you that your username has been updated successfully. 

If this action wasn't done by you, you need to contact with our support.

Но это вызывает исключение в очередях

ErrorException: неопределенная переменная: пользователь в / storage / framework / views /

Любые идеи, чтоЯ делаю не так?

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Попробуйте и получите доступ к $ user по вашему мнению

public function update(UserUpdateRequest $request)
{
    $request->user()->update([
        'name' => $request->username,
    ]);

    $user = $request->user();

    Mail::to($request->user())
        ->send(new UserUpdated($user));

    return redirect()->route('account.index');
}

Вы не можете отправить запрос $ прямо на ваш шаблон электронной почты, возможно, по этой причине у вас нет доступа к $ user

0 голосов
/ 03 марта 2019

Попробуйте передать его в view с помощью метода with и сделать user переменную защищенной:

protected $user;

public function build()
{
    return $this->view('emails.user.updated')->with(['username' => $this->user->username]);
}

И тогда вы сможете получить к ней доступ как {{ $username }} в своем представлении.

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