Php Laravel 5.1独特的电子邮件

Php Laravel 5.1独特的电子邮件,php,laravel,laravel-5,Php,Laravel,Laravel 5,根据文档,我试图在代码中使用以下规则,但它不起作用: /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'first_name' => 'required', 'last_name' => 'required', '

根据文档,我试图在代码中使用以下规则,但它不起作用:

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'first_name'        => 'required',
        'last_name'         => 'required',
        'email'             => 'required|unique:users,email,:email',
    ];
}
邮件已被接收。

我试图说,如果用户的电子邮件不是唯一的,那么抛出一个错误,除了当前的用户id


如何实现这一点?

您需要为唯一规则指定一个可忽略的ID。试试这个:

return [
    'first_name'        => 'required',
    'last_name'         => 'required',
    'email'             => 'required|unique:users,email,' . Auth::user()->id
];

注意:假设您使用的是Laravel的Auth类。

谢谢,但它不是当前登录的用户。它是管理员正在编辑的用户。所以我想我可以使用请求而不是身份验证?值得注意的是,它可以被认为是一个安全缺陷,迫使用户拥有唯一的电子邮件地址。这是因为,如果攻击者想知道某个电子邮件地址是否已在系统上注册,只需尝试将其地址更改为目标地址即可发现。借助自动化工具和电子邮件地址数据库(即垃圾邮件列表或从其他网站入侵),攻击者可以非常快速地绘制出用户群的良好轮廓。这可能对你来说是个问题,也可能不是,但可能是一个导致额外攻击你的方法。