Laravel 5.1唯一的电子邮件


Laravel 5.1 unique email

我试图在我的代码中使用以下规则,按照文档,但它不工作:

/**
 * 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',
    ];
}

返回The email has already been taken.

我想说,如果用户的电子邮件不是唯一的,然后抛出一个错误,除了当前的用户id。

我怎样才能做到这一点?

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

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

注意:这里假设你使用的是Laravel的Auth类