Laravel проверяет поле на какое-либо значение, если другое поле отличается от того же значения - PullRequest
0 голосов
/ 19 октября 2018

в моей форме я позволил пользователю выбрать две страны, теперь две страны не должны быть пустыми, значит, пользователь должен выбрать две из двух различных выборок, и одно из полей должно быть, скажем, «англия», если поле1 является англией, чемполе 2 должно быть обязательным, но это не важно, если оно равно «англия», если поле 1 не равно «англия», чем поле 2 должно быть обязательным и равно «англия»?

что-то вроде этого, я думаю:

$rules =[
  'field1' => '', //if this equals 'england' the field2 is just required
  'field2' => '' // if field1 is different from 'england' than this field must equal 'england'
];

Есть идеи, как я могу сделать это с правилами Laravel?

1 Ответ

0 голосов
/ 19 октября 2018

Я думаю, вам не нужно правило для этой ситуации.Вы можете сделать это, (напишите в $this->validate($rule)):

if ($request->field1 == 'england' && empty($request->field2)) 
   return 'Field2 required when field1 is england';

if ($request->field1 != 'england' && $request->field2 != 'england')
   return 'Field2 must be "england" when field1 different from "england"';

В laravel есть пользовательская проверка, но я думаю, что она работает для 1 параметра.https://laravel.com/docs/5.7/validation#custom-validation-rules

...