Как в Laravel изменить email восстановления пароля

LaravelКомментариев нет

По умолчанию текст письма восстановления пароля расположен в файле: vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php.

В принципе если вам нужно поменять только текст сообщения, то можно исправить прямо в файле. Но стоит отметить что данный способ довольна варварский, поэту в этой статье мы рассмотрим другой, более правильный.

Переводим текст сообщения на Русский

Перенесем шаблон нотификации в папку view что бы мы смогли отредактировать его, для этого в консоле выполним команду

#
php artisan vendor:publish --tag=laravel-notifications

В каталоге: \resources\views\vendor\notifications у нас появился файл email.blade.php в котором содержится шаблон нашего письма. Мы можем изменить внешний вид, но для примера мы просто заменим «Hello!» на «Здравствуйте!», «Regards» на «С уважением«. Вы же можете сделать свои изменения.

Далее нам нужно изменить текст самого письма, для этого создадим новый класс нотификации который будет переопределять текущее сообщение о восстановлении пароля.

Создаем новый класс

#
php artisan make:notification ResetPassword

В созданном классе, пропишем наследование от встроенного класса восстановления пароля(ссылка на него в самом начале статьи)

#
use Illuminate\Auth\Notifications\ResetPassword as ResetPasswordNotification;

class ResetPassword extends ResetPasswordNotification
{
....
}

Добавим в наш класс всего лишь один метот который и будет переопределять текст сообщения

#
public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('Восстановление пароля от аккаунта: ' . config('app.name'))
            ->line('По вашему требованию мы выслали ссылку на восстановления пароля. Что бы продолжить нажмите "Восстановить".')
            ->action('Восстановить', url('password/reset', $this->token))
            ->line('Если Вы не отправляли запрос на восстановление пароля, проигнорируйте это сообщение.');
    }

И последнее что нам нужно сделать, это сказать модели users что бы она использовала наш класс для отправки сообщения о восстановлении пароля, для этого откроем файл модели User.php и переопределим(добавим) следующую функцию:

#
use App\Notifications\ResetPassword;

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

Все готово)

 


Комментарии закрыты!