我想对两个字段进行验证,我已经尝试过了,但是对我来说不起作用,正是我需要对两个字段进行验证。
我想要的是字段“ grado”和“ fk_nivel_academico”的名称不再重复
这是我数据库中的表:
-----------------------------------------------
id | grado | fk_nivel_academico | fk_estado
1 | Primero | 1 | 1
2 | Segundo | 1 | 2
这是验证规则:
$validatedData = Validator::make(
[
'grado' => $this->grado
],
[
'grado' => [
'required',
Rule::unique('grado')
->where('fk_nivel_academico', '==', $this->fk_nivel_academico)
->where('grado', '==', $this->grado)
]
],
答案 0 :(得分:0)
我认为问题是您在SQL中使用==
时使用了=
比较器。
我建议您使用的另一种解决方案是制作一个Rule
文件。
这是指南How to create custom validation
在passs方法中,您可以使用类似这样的内容
public function passes($attribute, $value)
{
$table = Table::where('fk_nivel_academico', '=', $this->fk_nivel_academico)
->where('grado', '=', $this->grado)->get();
if($table->count() == 0){
return true;
}
}