我有一张名为taxonomy
的表格。它的列是id
,name
,slug
,type
(标记,类别)。我为标签和类别创建了一个单独的控制器。
现在我需要在slug上应用一个独特的验证规则:
where type = tag
答案 0 :(得分:1)
Unique规则
'slug' => Rule::unique('taxonomy')->where(function ($query) {
return $query->where('type', 'tag');
})
答案 1 :(得分:1)
您可以在单一验证功能中对unique
和insert
应用update
这样的规则。
public function validateTaxonomy(Request $request){
if(isset($request->id) && $request->id){
$id = ','.$request->id.',id,type,'.$request->tag;
}else{
$id = ',Null,id,type,'.$request->tag;
}
$rules = [
'slug' => 'required|unique:taxonomy,slug'.$id,
];
return Validator::make($request->all(), $rules);
}
从store
函数
public function store(Request $request)
{
$validator = $this->validateTaxonomy($request);
if($validator->fails()){
return redirect()->back()->withErrors($validator)->withInput();
}
...
}
答案 2 :(得分:0)
试试这个: ' POSTDATA' => '唯一的:表名,列名'
在此处查看更多验证: Validation Laravel
答案 3 :(得分:0)
Unique规则以及其他where子句
'slug' => Rule::unique('taxonomy')->where('type', 'tag')