【发布时间】:2018-07-20 20:41:02
【问题描述】:
我有一张名为taxonomy 的表。它的列是id、name、slug、type(标签、类别)。我为标签和类别创建了一个单独的控制器。
现在我需要对 slug 应用一个唯一的验证规则:
where type = tag
【问题讨论】:
-
这个问题你解决了吗?
标签: php laravel validation
我有一张名为taxonomy 的表。它的列是id、name、slug、type(标签、类别)。我为标签和类别创建了一个单独的控制器。
现在我需要对 slug 应用一个唯一的验证规则:
where type = tag
【问题讨论】:
标签: php laravel validation
试试这个: 'postData' => 'unique:table_name,column_name'
在此处查看更多验证: Validation Laravel
【讨论】:
Unique 带有附加 where 子句的规则
'slug' => Rule::unique('taxonomy')->where(function ($query) {
return $query->where('type', 'tag');
})
【讨论】:
您可以在单个验证函数中为insert 和update 应用这样的unique 规则。
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();
}
...
}
【讨论】:
Unique 带有附加 where 子句的规则
'slug' => Rule::unique('taxonomy')->where('type', 'tag')
【讨论】: