Laravel Validation 3 поля, но требуется только одно - PullRequest
0 голосов
/ 15 октября 2019

Я хотел бы спросить, знает ли кто-нибудь, как проверить 3 поля, но вы должны заполнить только одно, а не другое 2.

Пример:

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

field1, field2, field2 canЗаполняется, но если я заполняю поля field1, field2 и field3, но если я заполняю field1 и field2, проверка запускается, и только один из них может быть заполнен.

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Поместите обязательное заполненное поле как required. Для других просто поместите правило проверки, не ставьте required rule ..

 $this->validate($request, [
    'first_name' => 'required|string|max:255',
    'second_name' => 'string|max:255',
    'email' => 'required|string|email|max:255|unique:users',
    ]);
0 голосов
/ 15 октября 2019

попробуйте это:

Контроллер

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);
  ])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...