Laravel-如何通过变量重置密码模板


Laravel - How to pass variable to reset password template?

我已经用Laravel 5和获取电子邮件实现了重置密码功能。现在如何将一些可变数据传递到我的电子邮件模板,以显示有关用户的更多信息。

/**
 * Send a reset link to the given user.
 *
 * @param  'Illuminate'Http'Request  $request
 * @return 'Illuminate'Http'Response
 */
public function postEmail(Request $request)
{
    //echo Input::get('ID'); die;
    $this->validate($request, ['ID' => 'required|email']);
    $UserProduct = "Sample 1"; // I want to pass this variable to my password.blade.php
    $response = Password::sendResetLink($request->only('ID'), function (Message $message) {
        $message->subject($this->getEmailSubject());
    });
    switch ($response) {
        case Password::RESET_LINK_SENT:
            return redirect()->back()->with('status', trans($response));
        case Password::INVALID_USER:
            return redirect()->back()->withErrors(['ID' => trans($response)]);
    }
}

我想将$UserProduct = "Sample 1";打印到我的电子邮件模板中,但不知道如何传递到password.blade页面。

知道吗?

谢谢。

sendResetLink没有一种像laravel中的常规电子邮件那样发送更多数据的正确方法。

你可以使用视图编辑器来破解这个问题,比如:

$UserProduct = "Sample 1";
$infoArray = [1,2,3,4];
view()->composer('emails.auth.password', function($view) use ($UserProduct, $infoArray) {
    $view->with([
        'UserProduct' => $UserProduct,
        'info' => $infoArray,
        'more' => 'Even more info',
    ]);
});
$response = Password::sendResetLink($request->only('ID'), function (Message $message) {
    $message->subject($this->getEmailSubject());
});