如何解决如何在两列上设置唯一的验证规则
我有一张表 city_regionmappings 。共有三列:
id | regionmasters_id | citymasters_id
1 | 22 | 444
2 | 23 | 445
3 | 24 | 544
我通过两个不同的表在上面的表中保存行。现在,我想通过两列(regionmasters_id和citymasters_id)的组合使行唯一。不应有相同的行,例如:
id | regionmasters_id | citymasters_id
2 | 24 | 544
3 | 24 | 544
我尝试过但没有得到结果。
public function store(Request $request)
{
$this->validate($request,[
'region_id' => 'required','city_id' => 'required|unique:city_regionmappings,regionmasters_id,NULL,citymasters_id' . $request->region_id,],[
'required' => 'This field is required'
]);
}
解决方法
我得到了答案:
public function store(Request $request)
{
$this->validate($request,[
'region_id' => 'required','city_id' => [
'required',Rule::unique('city_regionmappings','citymasters_id')->where(function ($query) use ($request) {
return $query->where('regionmasters_id',$request->region_id);
})
]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。