Laravel中的复合唯一验证

时间:2019-07-16 00:51:08

标签: laravel

如何对两列使用复合唯一验证。 就像我有两个列临床名称和日期字段。 例。 Hclinic,2019年7月 Hclinic,08-2019

$this->validate($request, [
'clinicName'=> 'unique:hospital',
'dates'=> 'unique:hospital',
]);

我的目的是使用复合唯一验证。

1 个答案:

答案 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