如何对两列使用复合唯一验证。 就像我有两个列临床名称和日期字段。 例。 Hclinic,2019年7月 Hclinic,08-2019
$this->validate($request, [
'clinicName'=> 'unique:hospital',
'dates'=> 'unique:hospital',
]);
我的目的是使用复合唯一验证。
答案 0 :(得分:0)
根据Laravel Docs,您可以通过以下方式定义规则来做到这一点:
添加其他位置条款:
您还可以通过自定义 使用where方法查询。例如,让我们添加一个约束 验证account_id为1:
'email' => Rule::unique('users')->where(function ($query) { return $query->where('account_id', 1); })
因此您可以将代码更改为:
$this->validate($request, [
'clinicName' => Rule::unique('hospital')->where(function ($query) {
return $query->where('dates', Request::get('dates'));
]);
这将检查您的clinicName
的唯一性,其中dates
等于请求的给定dates
。