我已成功将我的Laravel 4应用程序的大部分升级到Laravel 5,但密码重置部分让我很难过。当我尝试发送密码重置电子邮件时,我收到此错误:
PasswordBrokerManager.php第137行中的ErrorException:call_user_func_array()期望参数1是有效的回调,类' Illuminate \ Auth \ Passwords \ PasswordBroker'没有方法提醒'
这是它不喜欢的代码:
/**
* Handle a POST request to remind a user of their password.
*
* @return Response
*/
public function postRemind()
{
switch ($response = Password::remind(Input::only('email')))
{
case Password::INVALID_USER:
return Redirect::back()->with('error', Lang::get($response));
case Password::REMINDER_SENT:
return view('notifications.email');
}
}
为什么这可能不起作用?
修改
将Password::remind
更改为Password::sendResetLink
,现在我收到此错误:
EloquentUserProvider.php第126行中的FatalErrorException:Class' \ App \ User'找不到
这是正确的,我在\ App命名空间中没有类,因为我把它移到了\ App \ Models中。我怎么能让它知道应该找到\ App \ Models \ User呢?
答案 0 :(得分:2)
您需要在config/auth.php
配置值的providers
文件中更改用户模型的完全限定类名:
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
...
]
...
除此之外,Laravel 5已经有一个App\Http\Controllers\Auth\PasswordController
类导入Illuminate\Foundation\Auth\ResetsPasswords
特征,该特性处理所有忘记密码的功能。