【发布时间】:2017-04-02 16:02:42
【问题描述】:
我正在使用 Laravel 5.3 并自定义密码重置电子邮件模板。我已经完成了以下更改,以使用自定义 Mailable 类为通知创建自己的 html 电子邮件。这是我到目前为止的进展:
忘记密码控制器:
public function postEmail(Request $request)
{
$this->validate($request, ['email' => 'required|email']);
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
return Response::json(['status' => trans($response)], 200);
case Password::INVALID_USER:
return Response::json(['email' => trans($response)], 400);
}
}
用户模型:
public function sendPasswordResetNotification($token)
{
Mail::queue(new ResetPassword($token));
}
ResetPassword Mailable 类:
protected $token;
public function __construct($token)
{
$this->token = $token;
}
public function build()
{
$userEmail = 'something'; // How to add User Email??
$userName = 'Donald Trump'; // How to find out User's Name??
$subject = 'Password Reset';
return $this->view('emails.password')
->to($userEmail)
->subject($subject)
->with([
'token' => $this->token
'userEmail' => $userEmail,
'userName' => $userName
]);
}
如果您注意到上述内容,我不确定如何传递用户名并找出用户的电子邮件地址。我需要从用户模型发送这些数据还是从 Mailable 类中查询它?有人可以告诉我如何做到这一点吗?
【问题讨论】:
-
这对我来说不是很清楚。您在何时何地使用此电子邮件通知?我的意思是,您是在重置用户密码后使用它吗?或者您的意思是包含重置密码链接的密码重置电子邮件?我相信我可以帮助你,但我完全不理解这种情况。
-
感谢您查看@JulianRodriguez 我正在尝试在密码重置电子邮件中执行此操作,其中包含重置密码表单的链接。我已经用
ForgotPasswordController更新了我的帖子。基本上,我正在尝试将Notification替换为Mailable类,以便在邮寄重置链接时可以使用不同的 html 布局。
标签: laravel laravel-5 laravel-5.3 laravel-mail