Как в Laravel изменить представление письма для reset password

Добрый день, читатели 🙂
Сегодня передо мной встала задача — клиент хотел чтобы письмо для восстановления пароля приходило с шаблоном определенного вида.

Немного разобравшись, я нашел что модель пользователя (User) декларируется примерно так: class User extends \Illuminate\Foundation\Auth\User
В свою очередь, базовый класс пользователя подключает в себя трейт CanResetPassword.

В трейте можем видеть следующий метод:


public function sendPasswordResetNotification($token)
{
    $this->notify(new ResetPasswordNotification($token));
}

Данный метод как раз и отправляет нотификацию для восстановления пароля. Все, что нам нужно сделать — создать новый класс ResetPasswordNotification в папке app/Mail/. После чего переопределяем метод в модели пользователя, подключая уже свою реализацию ResetPasswordNotification.

В своей реализации класса вставляем следующее:


namespace App\Mail;

use Illuminate\Auth\Notifications\ResetPassword;

class ResetPasswordNotification extends ResetPassword
{
    /**
     * Build the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return parent::toMail($notifiable)
            ->view('emails.reset_password');
    }
}

Что же он делает? Он полностью использует родительскую реализацию, но добавляет к сообщению свой view файл, в котором будут доступны следующие переменные:
$level, $subject, $greeting, $salutation, $introLines, $outroLines, $actionText, $actionUrl.

Здесь $actionText - это текст кнопки "восстановить пароль", а $actionUrl - ссылка на восстановление.

Click to rate this post!
[Total: 1 Average: 1]

Вам также может понравиться

About the Author: deniskoronets

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *