У меня есть такая форма:
<input type="checkbox" name="category[]" value="a">Option A</option> <input type="checkbox" name="category[]" value="b">Option B</option> <input type="checkbox" name="category[]" value="c">Option C</option> <input type="checkbox" name="category[]" value="d">Option D</option> <input type="checkbox" name="category[]" value="e">Option E</option> <input type="checkbox" name="category[]" value="f">Option F</option> <input type="text" name="description">
Если выбрана опция A, я хочу сделать описание необходимым для проверки бэкэнда в laravel 5. Поэтому я попытался:
$validator = Validator::make($request->all(), [ 'description' => 'required_if:category,a', ]); if ($validator->fails()) { return "error!" }
Однако проверка не работает. Как установить правило проверки, чтобы оно работало?
Вы можете попробовать:
$validator = Validator::make($inputs, [ 'description' => 'required_if:category.0,a', ]);
Если это не решит вашу проблему, вам нужно написать специальный валидатор.
Сначала вам нужно найти индекс флажка со value = 'a'
, в вашем примере – 0
и это можно сделать: $index = array_search('a', $request->get('category'));
, И, наконец, валидация:
[ 'description' => 'required_if:category.0,a', ]