我的控制器中有此方法
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 /
中的用户
有什么想法我在做什么错吗?
答案 0 :(得分:0)
尝试通过view
方法将其传递到with
并保护user
变量:
protected $user;
public function build()
{
return $this->view('emails.user.updated')->with(['username' => $this->user->username]);
}
然后您可以在视图中像{{ $username }}
一样访问它。
答案 1 :(得分:0)
尝试此操作,然后访问您所认为的$ 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');
}
您不能直接向您的电子邮件模板发送$ request,这可能是您无法访问$ user的原因