2016-02-20 1 views
7

Использование Laravel 5.2Как переопределить/добавить к броузеру паролей в Laravel?

Мне нужно переписать пару функциональных возможностей/добавить некоторые новые вещи в процесс сброса пароля. Я знаю, что могу перезаписать функциональность в Illuminate\Foundation\Auth\ResetsPasswords с помощью контроллера паролей, который выходит из олова.

Мне также необходимо внести изменения в Illuminate\Contracts\Auth\PasswordBroker. Моя цель состоит в том, чтобы иметь адрес электронной почты приглашения для установки начального пароля, который использует существующие функции сброса пароля. Единственная проблема заключается в функции sendResetLink.

Эта функция получает токен паролей и отправляет электронное письмо с помощью адреса электронной почты для сброса пароля. Мне по-прежнему нужна функция сброса пароля, но у меня нет приглашения на электронную почту с формулировкой «сбросить пароль».

Как это сделать? Я думаю, что я могу дублировать и настраивать функциональность в классах сброса, чтобы использовать приглашение для отправки по электронной почте, но я не могу понять, как расширить класс брокера, чтобы сделать эту работу.

ответ

2

Я боролся с тем же. Я добавил метод setEmailView() в свой пользовательский PasswordBroker и вызвал его перед отправкой resetlink в AuthController, но это нарушило обычную функцию сброса пароля.
Итак, я сломал все это и пошел на гораздо более простой подход. В AuthController.php введите переменную в шаблон пароля.

view()->composer('auth.emails.password', function($view) { 
    $view->with(['register'=>true]); 
}); 
Password::sendResetLink(['email'=>$data['email']], function($message) { 
    $message->subject('Registration Email'); 
}); 

Затем в шаблон авториз/писем/password.blade.php

@if (isset($register)) 
    Whatever you want to say in registration Email. 
@else 
    Normal password reset Email here. 
@endif 
+0

Вы спасли мой день. –

Смежные вопросы