Laravel - sendResetLink не работает

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

Имею следующее:

$user = new User();
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make(str_random(8));
$user->save();

$response = Password::sendResetLink(Input::get('email'), function (Message $message) {
        $message->subject('Password Reset');
    }); 

Я получаю ошибку

Аргумент 1, переданный в Illuminate \ Auth \ Passwords \ PasswordBroker :: sendResetLink (), должен иметь тип array, заданная строка

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


person Community    schedule 17.04.2016    source источник
comment
Я думаю, что ошибка очевидна. sendResetLink ожидает массив, а вы предоставляете строку.   -  person pawelmysior    schedule 17.04.2016
comment
@PawelMysior, очень верно, это проблема, с которой я столкнулся. Я не уверен, что он хочет в массиве.   -  person    schedule 17.04.2016


Ответы (1)


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

В этом случае вам следует использовать:

Request::only('email')

вместо того

Input::get('email')
person Marcin Nabiałek    schedule 17.04.2016
comment
Спасибо за ответ. Я пробовал это, но возвращается следующая ошибка Non-static method Illuminate\Http\Request::only() should not be called statically, assuming $this from incompatible context. - person ; 17.04.2016
comment
@Ben Так что измените Request здесь на \Request, чтобы использовать здесь фасад Request. - person Marcin Nabiałek; 17.04.2016