如何在laravel验证中的另一个多选字段中选择值?

时间:2016-10-28 09:29:08

标签: php laravel validation laravel-5

我有一个这样的表格:

<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!"
}

但是,检查无效。我应该如何设置验证规则以使其有效?

2 个答案:

答案 0 :(得分:0)

首先,您需要找到value = 'a'复选框的索引,在您的示例中为0,可以通过以下方式完成:$index = array_search('a', $request->get('category'));。最后验证是:

[
    'description' => 'required_if:category.0,a',
]

答案 1 :(得分:0)

您可以尝试:

$validator = Validator::make($inputs, [
            'description' => 'required_if:category.0,a',
        ]);

如果这不能解决您的问题,那么您必须编写自定义验证器。