如何在独特的属性laravel中添加多个条件?



表:收费

id | ac_id | year |
| - | -- |-------------- |
| 1 | 1  | 2021          |
| 2 | 1  | 2020          |
| 3 | 2  | 2021          |
| 4 | 2  | 2020          |

我在做验证时遇到问题,年份应该是唯一的,相对于ac_id

'year'=>"required|unique:charges,year",

我尝试过这个验证规则,但在为不同的ac_id添加相同的年份时不工作

尝试在验证规则中使用where:

'year' =>['required', Rule::unique('charges')->where(function ($query) {
return $query->where('ac_id', $this->get('ac_id'));
})]

您应该在数据库表级别使用唯一约束来强制执行:

ALTER TABLE charges ADD CONSTRAINT c_unique UNIQUE KEY (ac_id, year);

最新更新