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
特征。它还包括 Authenticatable
和 Authorizable
特征。
您的问题中的 Laravel 5.3
示例就是您所需要的。
希望这会有所帮助!
【讨论】:
完美。谢谢@RossWilson 文档中的第一行让我感到困惑To get started, verify that your App\User model implements the CanResetPassword contract
,而第二行表明它已经包含该方法。感谢您为我澄清这一点。我将保持我的用户模型不变。干杯!以上是关于Laravel 5.3 用户模型中的 CanResetPassword的主要内容,如果未能解决你的问题,请参考以下文章