我需要验证复选框数组:
<input name="cats[]" type="checkbox" value="1"> sport
<input name="cats[]" type="checkbox" value="2"> music
<input name="cats[]" type="checkbox" value="3"> business
我在文档中找到了“数组”验证:
Validator::make(
[ 'cats' => Input::get('cats') ],
[ 'cats' => 'array' ]
);
是否有任何内置方法可以检查是否至少检查了一项?另外,如何检查提交的值是否与给定列表匹配?
答案 0 :(得分:7)
您可以使用min: value 来验证数值,也可以使用它来验证数组的大小。
Validator::make(
[ 'cats' => Input::get('cats') ],
[ 'cats' => 'min:1' ]
);
示例:
$validator = Validator::make([
'cats' => ['Boots', 'Mittens', 'Snowball']
], ['cats' => 'min: 1']);
$result = $validator->fails(); // returns false
$validator = Validator::make([
'cats' => ['Boots', 'Mittens', 'Snowball']
], ['cats' => 'min: 2']);
$result = $validator->fails(); // returns false
$validator = Validator::make([
'cats' => ['Boots', 'Mittens', 'Snowball']
], ['cats' => 'min: 4']);
$result = $validator->fails(); // returns true
答案 1 :(得分:6)
从laravel 5开始,您只需添加必需的规则
即可ar.forEach(function(el, index, array){
console.log(index);
});
答案 2 :(得分:2)
如果您不介意触摸输入数据,可以执行以下操作:
$data = Input::all();
$data['cats'] = Input::has('cats') ? implode(',',$data['cats']) : null;
$rules = [ 'cats' => 'required|in:foo,bar' ];
$validator = Validator::make($data, $rules);
答案 3 :(得分:1)
这个派对迟到了,但肯定只是让它“必需”就足够了吗?
public function rules(){
return [
'checkboxarray' => 'required'
];
}