Черта ResetsPasswords не работает должным образом в Laravel 5.2

Я следовал инструкциям здесь

https://laraveltips.wordpress.com/2015/06/15/how-to-make-user-login-and-registration-laravel-5-1/

для настройки входа и регистрации.

Вход и регистрация работают правильно, но когда я нажимаю «Забыли пароль», я получаю следующее исключение:

ErrorException в строке 104 ResetsPasswords.php: Аргумент 1, переданный в App\Http\Controllers\Auth\PasswordController::showResetForm(), должен быть экземпляром Illuminate\Http\Request, нулевым значением, вызванным в ResetsPasswords.php в строке 92 и определенным

Не уверен, что вызывает это, поскольку объект запроса, кажется, передается правильно

public function getReset($token = null)
{
    return $this->showResetForm($token);
}

Я использую ларавель 5.2.6


person Arunabh Das    schedule 07.01.2016    source источник
comment
Опубликуйте код, где вы вызываете getReset, $token кажется нулевым.   -  person Matt    schedule 07.01.2016
comment
Вы должны использовать форму лезвия вместо HTML-формы. Вы не получаете токен в своем контроллере прямо сейчас.   -  person Umair Hamid    schedule 07.01.2016
comment
@UmairHamid, тебе не обязательно использовать лезвие.   -  person lagbox    schedule 07.01.2016
comment
Я неправильно понял вопрос :)   -  person Umair Hamid    schedule 07.01.2016


Ответы (2)


Если он говорит, что ему нужен «экземпляр Illuminate\Http\Request», передайте его.

public function getReset(Request $request, $token = null)
{
   return $this->showResetForm($request, $token);
}
person lagbox    schedule 07.01.2016

В теге laravel 5.2.6, похоже, есть ошибка в свойстве ResetsPassword. У меня возникла проблема с поиском ResetsPassword.php на github и использованием тега v5.2.6, и вы увидите, что запрос не передается методу showResetForm вы можете исправить это, вручную добавив его в черту ResetsPassword, но было бы лучше просто проверить laravel 5.2 в вашем файле композитора.

Итак, в вашем composer.json это теперь, вероятно, выглядит для вас так.

"laravel/framework": "5.2.*"

Но когда вы измените его на

"laravel/framework": "5.2"

и запустите обновление композитора

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

person DB93    schedule 07.01.2016
comment
Хороший улов на этом. Я бы просто отрегулировал его в вашем собственном контроллере, пока изменение не будет внесено в следующий выпуск с тегами, - person lagbox; 07.01.2016
comment
Это тоже решение, но вы также можете проверить тег 5.2.5, потому что в showResetForm передается только токен только в 5.2.6. Запрос добавляется в showResetForm, но он не добавляется в getReset - person DB93; 07.01.2016
comment
Есть причина, по которой версии помечаются тегами. Я бы не стал с этим связываться, но вы могли бы, как вы показали :). - person lagbox; 07.01.2016