laravel - 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
文件。这是一个指南如何创建自定义验证
在passes方法中你可以使用这样的东西
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;
}
}
推荐阅读
- python-3.x - Mac OS X 上的 ODBC Sql Server 17 驱动程序
- python - 在pyexcel中更改Book对象中工作表的默认顺序
- apache-nifi - Apache NIFI ExecuteStreamCommand
- swift - SCNNode 未锚定在现实世界坐标中
- python - Q-learning 算法奖励生成
- sockets - OpenCV 如何处理 TCP 连接?
- node.js - MEAN Stack 保护布局路线
- ios - 斯威夫特:当两个视图彼此不直接连接时,是否可以使用委托?
- templates - 模板对象得到“没有命名类型”。
- json - 在外部 JSON 中搜索项目