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

У меня есть недавно добавленное поле выбора в моей форме обновления 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");

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

Привет! Я предлагаю вам прочитать эту часть проверки laravel. laravel.com/docs/5.7/validation#conditional-adding-rules

Kapitan Teemo 08.11.2018 15:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
251
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Спасибо, я считаю, что это поможет с основным блоком! Итак, для второго блока кода могу я просто использовать statusCode и «Да» в качестве условного оператора if? А затем проверьте, является ли он нулевым, если это так?

Geoff_S 08.11.2018 15:59

Это настраиваемая проверка, поэтому вы можете делать это, как хотите. Или вы можете создать собственное правило проверки по ссылке на документацию, опубликованной в комментарии к вашему основному вопросу.

nakov 08.11.2018 16:06

Другие вопросы по теме