laravel中唯一的验证规则



我想对两个字段进行验证,我已经尝试过了,但对我来说不起作用,我只需要验证两个字段。

我想要的是田野的圣母们"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)
]
],

我认为问题在于,在sql中使用==比较器时,它是=。我建议您使用的另一个解决方案是制作一个Rule文件。以下是如何创建自定义验证的指南

在通行证方法中,你可以使用类似于的东西

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;
}
}

相关内容

  • 没有找到相关文章

最新更新