Laravel验证3个字段,但只需要一个

时间:2019-10-15 01:19:08

标签: laravel validation

我想问问是否有人知道如何验证3个字段,但您只能填写一个,而不能填写其他2个。

示例:

<input name="field1" type="numeric">
<input name="field2" type="numeric">
<input name="field3" type="numeric">

field1,field2,field2可以填充,但是如果我填充field1,field2和field3通过,但是如果我填充field1和field2,则触发验证,并且只能填充其中之一。

谢谢

3 个答案:

答案 0 :(得分:0)

尝试一下:

控制器

public function store() {
  User::create(request()->validate([
    'first_name' => 'required|min:3',
    'middle_name' => 'nullable',
    'last_name' => 'nullable',
  ]))
}

编辑

public function store(Request $request) {
  Validator::make($request()->all, [
    'number_1' => Rule::requiredIf(!$request->number_2 && !$request->number_3);
    'number_2' => Rule::requiredIf(!$request->number_1 && !$request->number_3);
    'number_3' => Rule::requiredIf(!$request->number_1 && !$request->number_2);
  ])
}

答案 1 :(得分:0)

将必须填写的字段设置为# ... # [REDACTED] # [REDACTED] # ... 。对于其他人,只需放置验证规则,不要放置required规则。

required

答案 2 :(得分:0)

sometimes将验证其是否通过

'field1' => 'sometimes|required|max:255',
'field2' => 'sometimes|required|max:255',
'field3' => 'sometimes|required|max:255',