2015-10-06 3 views
0

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

  • администратор заполняет форму с именем пользователя и пароль
  • отправляется сообщение электронной почты пользователю со ссылкой установить пароль
  • пользователь вошел в систему

Теперь в конце дня, что я действительно хочу, что PasswordBroker делает, но вместо отправьте e-mail.passsowrd view Я хочу другой, а остальная часть логики может быть одинаковой.

Есть ли простой способ создать действительный isntace passwordBroker и передать другой вид?

emailWiew собственность защищена, так что я не могу изменить это, я попытался создать новый экземпляр из МОК

$tokens = $this->app['auth.password.tokens']; 

$users = $this->app['auth']->driver()->getProvider(); 

$view = "emails.createPassword"; 

$password = new PasswordBroker(
    $tokens, $users, $this->app['mailer'], $view 
); 
dd($users->retrieveByCredentials(["[email protected]"])); //i get null and the user email is valid 

$response = $password->sendResetLink(["[email protected]"], function (Message $message) { 
    $message->subject("Set your password"); 
}); 
dd($response); // I get "passwords.user" wich is an error 

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

Есть идеи?

ответ

0

Проблема в том, что вы не предоставляете ключ для получения учетных данных, поэтому он пытается получить поле в таблице пользователей по имени «0». используйте следующее, и оно будет работать:

$response = $password->sendResetLink(
    ["email" => "[email protected]"], 
    function (Message $message) { 
     $message->subject("Set your password"); 
}); 
+0

Конечно! Большое вам спасибо, сейчас я чувствую себя очень глупо! –