php - 将 Laravel 4 密码重置 Controller 升级到 Laravel 5

标签 php laravel laravel-5

我已成功将大部分 Laravel 4 应用程序升级到 Laravel 5,但密码重置部分让我遇到了困难。当我尝试发送密码重置电子邮件时,收到此错误:

ErrorException in PasswordBrokerManager.php line 137: call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Auth\Passwords\PasswordBroker' does not have a method 'remind'

这是它不喜欢的代码:

/**
 * 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,现在我收到此错误:

FatalErrorException in EloquentUserProvider.php line 126: Class '\App\User' not found

这是正确的,自从我将它移动到\App\Models 后,我在\App 命名空间中没有类。我怎样才能让它知道它应该寻找\App\Models\User 呢?

最佳答案

您需要在 config/auth.php 文件的 providers 配置值中更改用户模型的完全限定类名:

...
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],
    ...
]
...

除此之外,Laravel 5 已经有了 App\Http\Controllers\Auth\PasswordController导入 Illuminate\Foundation\Auth\ResetsPasswords 的类处理所有忘记密码功能的特征。

关于php - 将 Laravel 4 密码重置 Controller 升级到 Laravel 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34843156/

相关文章:

php - 将 1 个数组的值合并到另一个键相同的数组

PHP MySQL 将多个 fetchcolumn 组合成一个查询

未找到 PHP Laravel 类。如何使用命名空间来解决这个问题?

php - 没有 remember_token 的 Laravel 5 身份验证

php - laravel 5 一对一关系显示外键名称字段

php - 在PHP中获取Youtube地址

javascript - 如果数据已/未存储在同一表单页面的数据库中,则显示成功/错误消息

php - 在 Laravel 4 迁移中创建 MYSQL 函数

php - 如何多次使用一个表中的一个外键在 Laravel 中获取数据?

mysql - 与数据透视表连接的外键约束格式不正确