Laravel, используя условие поля выбора, чтобы диктовать валидацию формы

У меня есть недавно добавленное поле выбора в моей форме обновления laravel:

<tr>
<td>{!! Form::label('statusCode', 'Active') !!}</td>
<td>{!! Form::select('statusCode', array('A' => 'Yes', 'D' => 'No')) !!}</td>
</tr>

Установка значения «Да» или «Нет» работает, и когда я отправляю форму, она корректно обновляет запись базы данных, но при проверке возникает небольшая головная боль.

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

Так что в этом блоке, если мой выбор установлен на «D» или «Нет», мне нужно только указать идентификатор:

$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");

Как я могу использовать значение поля выбора, чтобы пустые поля могли пропустить проверку, но заполненные поля все еще должны быть проверены?

0

Решение

Ты можешь использовать required_if правило:
required_if:anotherfield,value,...

'prdGrpNum' => 'required_if:statusCode,Yes|numeric'

и то же самое для других правил.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector