Laravel 5
Перевод письма о сбросе пароля в Laravel 5
Стандартное письмо на английском:
Hello! You are receiving this email because we received a password reset request for your account. ...
Шаблон находится в vendor/laravel/framework/... и крайне не рекомендуется его изменять.
Алгоритм:
1) Выполняем команду php artisan vendor:publish и далее выбираем пункт tag=laravel-notifications
2) В файле views/vendor/notifications/email.blade.php переводим строки Hello!, Regards и текст в компоненте mail:subcopy (в самом низу документа):
Если кнопка "{{ $actionText }}" недоступна, скопируйте и вставьте в браузер следующую ссылку: [{{ $actionUrl }}]({{ $actionUrl }})
3) Выполняем команду php artisan make:notification ResetPassword
4) Изменяем app/Notifications/ResetPassword.php (token и toMail()):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
class ResetPassword extends Notification { use Queueable; public $token; /** * Create a new notification instance. * * @return void */ public function __construct($token) { $this->token = $token; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return ['mail']; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { return (new MailMessage) ->subject('Восстановление пароля') ->line('Чтобы восстановить пароль к личному кабинету сайта www.site.com, перейдите по ссылке.') ->action('Восстановить пароль', url(config('app.url').route('password.reset', $this->token, false))) ->line('Если вы не запрашивали восстановление, то просто удалите данное письмо.'); } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ // ]; } } |
5) Настраиваем config('app.url')
6) В модель User добавляем use App\Notifications\ResetPassword и:
1 2 3 4 |
public function sendPasswordResetNotification($token) { $this->notify(new ResetPassword($token)); } |
7) Не относится к теме поста, но все же: при необходимости в ResetPasswordController добавляем protected $redirectTo = '/';