具有多个值的Required_if拉拉维尔

2022-08-30 11:34:43

我有一个这样的下拉菜单:

<select name="selection">
   <option value="1">Option 1</option>
   <option value="2">Option 2</option>
   <option value="3">Option 3</option>
</select>
<input type="text" name="stext">

我想要在laravel中提供以下内容:

public static myfunction(){
   $input = \Input::only('selection','stext');
   $rule = array(
      'selection' => 'required',
      'stext' => 'required_if:selection,2,3',
   );
   $validate = \Validator::make($input,$rule);
}

但是如果我选择选项1,仍然是必需的。为什么?我该如何修复它?stext


答案 1

您只需要将所有值作为参数传递,并用逗号分隔:

$rules = array(
      'selection' => 'required',
      'stext'     => 'required_if:selection,2,3'
);

答案 2

编辑:正如LePhleg答案所指出的那样,此验证有一个最好的语法:

$rule = array(
  'selection' => 'required',
  'stext' => 'required_if:selection,2,3,
);

下面的旧答案:

我认为require_if验证每次只接受一个值。尝试更改验证码,如下所示:

$rule = array(
  'selection' => 'required',
  'stext' => 'required_if:selection,2|required_if:selection,3',
);

编辑:检查LePhleg的答案,更干净。在回答不可能的时候,只需检查问题,他使用相同的方法但没有工作。


推荐