我有一张表 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'
]);
}
答案 0 :(得分:0)
我得到了答案:
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);
})
]
}