Laravel Свой текст письма сброса пароля в Laravel 5.4

MaksM

Новичок
Пользуюсь стандартной регистрацией Лары. Когда запрашиваешь ссылку на восстановление пароля письмо приходит на заморском языке. Как мне отправить свой текст со ссылкой для сброса пароля в письме не меняя текст в \vendor\laravel\framework\src\Illuminate\Auth\Notifications\ResetPassword.php?
Понимаю, что нужно перекрыть метод toMail, но не пойму где )). Только не кидайте ссылки на документацию. Там я все прочел и запутался. Объясните пожалуйста на пальцах ))
 

флоппик

promotor fidei
Команда форума
Партнер клуба
artisan make:auth опубликует шаблоны авторизации, в том числе и для писем.
 

MaksM

Новичок
Не, он только формы публикует. Ничего другого нет. Может я не там смотрю? После этой команды появляется папка views/auth в которой 4 файла (все с формами)
artisan vendor : publish тоже публикует общий шаблон писем в котором переменные указаны, а не сам текст.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Не, он только формы публикует. Ничего другого нет. Может я не там смотрю? После этой команды появляется папка views/auth в которой 4 файла (все с формами)
artisan vendor : publish тоже публикует общий шаблон писем в котором переменные указаны, а не сам текст.
Сорри, это был 5.3, на котором проверил. Действительно, в 5.4 все вообще по другому устроено.
Вкратце — у модели пользователя нужно перекрыть метод sendPasswordResetNotification($token), где реализовать отправку письма.
https://laravel.com/docs/5.4/passwords#password-customization
 

fixxxer

К.О.
Партнер клуба
Это совсем тяжелая артиллерия, не должно быть так сложно :)

Вроде можно сделать vendor : publish с нужным тегом. Ну и русскую локаль включить и поставить.

Хотя не уверен, с 5.4 особо не работал.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
@fixxxer, уже нет. Я прям исходники посмотрел. Там хардкод теперь в нужных местах :D

 

MaksM

Новичок
Флоппик, спасибо огромное за наводку ).
Я сделал копию ResetPassword в MyResetPassword, там переписал сообщение по русски, а в модели пользователя перекрыл sendPasswordNotification

PHP:
public function sendPasswordResetNotification($token)
{
    $this->notify(new MyResetPassword($token));
}
И все стало как надо )
 

sergioz

Новичок
Флоппик, спасибо огромное за наводку ).
Я сделал копию ResetPassword в MyResetPassword, там переписал сообщение по русски, а в модели пользователя перекрыл sendPasswordNotification

PHP:
public function sendPasswordResetNotification($token)
{
    $this->notify(new MyResetPassword($token));
}
И все стало как надо )

У Вас восстановление пароля адекватно работает? Просто я сделал как [ссылка удалена] описано, возникают проблемы с токеном, он не передается в УРЛ, не могу понять, почему именно
 
Последнее редактирование модератором:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@sergioz, да, у него все работает. По своим вопросам создаем отдельный тред
 
Сверху