Laravel 4: verifica la casella di controllo alless una

Ho bisogno di validationre arrays checkbox:

<input name="cats[]" type="checkbox" value="1"> sport <input name="cats[]" type="checkbox" value="2"> music <input name="cats[]" type="checkbox" value="3"> business 

Ho trovato la validation "arrays" nella documentazione:

 Validator::make( [ 'cats' => Input::get('cats') ], [ 'cats' => 'arrays' ] ); 

C'è un modo integrato per verificare se alless un elemento è controllato? Inoltre, come verificare se i valori inviati corrispondono ad una data list?

Puoi utilizzare min: value per validationre un valore numbersco e puoi anche usarlo per validationre le size di un arrays.

 Validator::make( [ 'cats' => Input::get('cats') ], [ 'cats' => 'min:1' ] ); 

Esempi:

 $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 

A partire da laravel 5 puoi solo aggiungere la regola richiesta

 <input name="cats[]" type="checkbox" value="1"> sport <input name="cats[]" type="checkbox" value="2"> music <input name="cats[]" type="checkbox" value="3"> business // Controller $rules = $this->validate($request, arrays('cats'=>'required')); // will do the work 

Se non ti dispiace toccare i tuoi dati di input, potresti fare:

 $data = Input::all(); $data['cats'] = Input::has('cats') ? implode(',',$data['cats']) : null; $rules = [ 'cats' => 'required|in:foo,bar' ]; $validator = Validator::make($data, $rules); 

Un po 'tardi per questa festa, ma sicuramente basta renderlo "richiesto" sarà sufficiente?

 public function rules(){ return [ 'checkboxarrays' => 'required' ]; }