Laravel 5.3 用户模型中的 CanResetPassword

Posted

技术标签:

【中文标题】Laravel 5.3 用户模型中的 CanResetPassword【英文标题】:CanResetPassword in User Model for Laravel 5.3 【发布时间】:2017-03-06 02:05:26 【问题描述】:

我正在将我的应用从 Laravel 5.1 转换为 5.3。我不确定如何在我的用户模型中编辑 CanResetPassword 部分。

这是我的 laravel 5.1 中的 user.php 文件:

namespace App\Models;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract

    use Authenticatable, SoftDeletes, CanResetPassword;
    ...

现在,我不确定将其更改为 Laravel 5.3 时需要进行哪些编辑。

Laravel 5.3 用户模型是这样的:

namespace App\Models;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\SoftDeletes;

class User extends Authenticatable

    use Notifiable, SoftDeletes;

当我阅读documentation时,它说:

在使用 Laravel 的密码重置功能之前,您的用户必须 使用 Illuminate\Notifications\Notifiable trait。

已经存在了。

要开始使用,请验证您的 App\User 模型是否实现了 Illuminate\Contracts\Auth\CanResetPassword 合约。当然, 框架中包含的 App\User 模型已经实现了这个 接口,并使用 Illuminate\Auth\Passwords\CanResetPassword trait 包含实现接口所需的方法。

我不明白,因为第一句说要实施CanResetPassword 合同,但第二句说它已经实施。从上面的引用中,这是否意味着我不需要包含CanResetPassword,因为用户模型已经实现了这个接口?

谁能告诉我我需要对 Laravel 5.3 中的用户模型进行哪些编辑才能重置密码?

【问题讨论】:

【参考方案1】:

正如文档所说,Authenticatable 类 (Illuminate\Foundation\Auth\User) 实际上包含 CanResetPassword 特征。它还包括 AuthenticatableAuthorizable 特征。

您的问题中的 Laravel 5.3 示例就是您所需要的。

希望这会有所帮助!

【讨论】:

完美。谢谢@RossWilson 文档中的第一行让我感到困惑To get started, verify that your App\User model implements the CanResetPassword contract,而第二行表明它已经包含该方法。感谢您为我澄清这一点。我将保持我的用户模型不变。干杯!

以上是关于Laravel 5.3 用户模型中的 CanResetPassword的主要内容,如果未能解决你的问题,请参考以下文章

错误字段在 laravel 5.3 中没有默认值

Laravel 5.3 多态关系

在同一张表上定义关系 Laravel 5.3

如何正确删除 Laravel 5.3 中用户表列中的“唯一”列属性?

Laravel 5.3 Auth 阻止用户

laravel 5.3 关系模型使用非默认键