Laravel 5 使用不同主键在编辑字段中进行唯一验证

Laravel 5 unique validation in edit field with different primary key

我正在使用 Laravel 5 中的请求功能,我可以创建一个有效的新白名单项目。

这是编辑功能的规则,我需要它在没有更改的情况下忽略唯一的电子邮件字段。

我正在使用文档中的说明并按如下方式设置我的规则

public function rules()
{
    return [
        'name' => 'required',
        'email'=> 'required|email|unique:whitelists,whitelistID,'.$this->segment('2'),
        'level' => 'required',
        'position' => 'required'
    ];
}

我收到错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: select count(*) as aggregate from `whitelists` where `whitelistID` = te2st@test.com and `id` <> 3)

该列使用 whitelistID 作为其主键,这是在白名单模型中使用

设置的
protected $primaryKey = 'whitelistID';

知道为什么默认为 'id' 吗?

你对 unique 的论点有误。这应该会更好:

'email'=> 'required|email|unique:whitelists,email,'.$this->segment('2').',whitelistID',