我的验证规则是...Laravel验证:唯一例外不工作为一个用户
$rules = [];
foreach($this->request->get('email') as $key=>$value){
$rules['email.'.$key] = 'required|regex:/[a-zA-Z][email protected][a-zA-Z]+(\.[a-zA-Z]+)+/|unique:admins,admin_email,'.$this->request->get('admin_id')[$key].',admin_id';
}
基本上,规则是它的需要,通过正则表达式,而电子邮件是不是已经在使用与电子邮件正被特定行使用的例外。然而,当我跑的形式我得到这个错误信息:
The email.0 has already been taken.
需要明确的是,这种形式的有8个不同的用户,只有第一个是给我这个问题。我做了一个dd()规则来看看应用的验证规则之间有什么不同,但我没有看到任何规则。
"email.0" => "required|regex:/[a-zA-Z][email protected][a-zA-Z]+(\.[a-zA-Z]+)+/|unique:admins,admin_email,0,admin_id"
"email.1" => "required|regex:/[a-zA-Z][email protected][a-zA-Z]+(\.[a-zA-Z]+)+/|unique:admins,admin_email,1,admin_id"
"email.2" => "required|regex:/[a-zA-Z][email protected][a-zA-Z]+(\.[a-zA-Z]+)+/|unique:admins,admin_email,2,admin_id"
如果我更新email.0,我没有得到这个问题。无论是否更新email.0,我也不会在其他任何行中遇到此问题。由于存在外键约束,我无法删除此用户。令人难以置信的是,admin_id
这个特定的管理员是0
。或者,换句话说,这是表的外观为这个特定条目
admin_id|admin_email
--------+------------
0 | [email protected]
编辑:哪里Laravel构建和运行实际的查询?如果我可以在数据库日志上执行dd(),我可能能够找到我的问题(请参阅实际的原始查询)。
我明显错过了一些东西 - 任何帮助将不胜感激!
你可以粘贴'DD的输出( request())'在验证和验证代码本身之前? – dbr