表:收费
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);