【问题标题】:How to set require if value is chosen in another multiple choice field in validation of laravel?如果在验证 laravel 的另一个多项选择字段中选择了值,如何设置要求?
【发布时间】:2017-03-11 04:05:43
【问题描述】:

我有一个这样的表格:

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

但是,检查不起作用。我应该如何设置验证规则以使其正常工作?

【问题讨论】:

标签: php laravel validation laravel-5


【解决方案1】:

首先你需要找到value = 'a'的复选框索引,在你的例子中是0,它可以通过:$index = array_search('a', $request-&gt;get('category'));来完成。最后验证是:

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

【讨论】:

  • 试过了,提示“验证规则 required_if 需要至少 2 个参数。”
  • 嗯.... 这有效,但仅适用于选项 A。如果我更改为 'required_if:category.1, b',并且选择了两个选项 A&B,它就不起作用。
  • 当你检查了AB后,你能把dd($request-&gt;get('category'));的输出放上去吗?
【解决方案2】:

你可以试试:

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

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

【讨论】:

  • 嗯.... 这有效,但仅适用于选项 A。如果我更改为 'required_if:category.1, b',并且选择了两个选项 A&B,它就不起作用。
猜你喜欢
  • 1970-01-01
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
相关资源
最近更新 更多