У меня есть недавно добавленное поле выбора в моей форме обновления laravel:
<tr>
<td>{!! Form::label('statusCode', 'Active') !!}</td>
<td>{!! Form::select('statusCode', array('A' => 'Yes', 'D' => 'No')) !!}</td>
</tr>
Установка значения «Да» или «Нет» работает, и когда я отправляю форму, она правильно обновляет запись базы данных, но с проверкой возникает небольшая головная боль.
Технически, если я установил для него значение «Нет» для деактивации изображения, тогда все, что мне нужно, это идентификатор изображения, чтобы я знал, какой из них деактивировать, но прямо сейчас он принудительно проверяет ненужные входные данные, если они пустые.
Итак, в этом блоке, если мой выбор установлен на 'D' или 'No', мне нужно только потребовать идентификатор:
$this->validate($request, [
'id' => 'required|numeric|unique:jfi.image_files,id,' . $id,
'prdGrpNum' => 'numeric|required',
'altGrpDesc' => 'required',
'cover1' => 'numeric|required',
'color1' => 'numeric|required',
'typeId' => 'numeric|required'
]);
Однако в следующем блоке я проверяю все заполненные входные данные в базе данных, чтобы данные оставались дезинфицированными.
Итак, для этого блока я хочу сказать: «ЕСЛИ поле выбора установлено на 'D' / 'Нет' И это поле пусто, не проверять. В противном случае выполните эту существующую проверку для imageService»
if (!$imageService->validImageTypeId($request->typeId))
return back()->withErrors("Invalid image type given");
Как я могу использовать значение поля выбора, чтобы пустые поля пропускали проверку, но заполненные поля все равно проверялись?






Вы можете использовать правило required_if:
required_if:anotherfield,value,...
'prdGrpNum' => 'required_if:statusCode,Yes|numeric'
и то же самое для других правил.
Спасибо, я считаю, что это поможет с основным блоком! Итак, для второго блока кода могу я просто использовать statusCode и «Да» в качестве условного оператора if? А затем проверьте, является ли он нулевым, если это так?
Это настраиваемая проверка, поэтому вы можете делать это, как хотите. Или вы можете создать собственное правило проверки по ссылке на документацию, опубликованной в комментарии к вашему основному вопросу.
Привет! Я предлагаю вам прочитать эту часть проверки laravel. laravel.com/docs/5.7/validation#conditional-adding-rules