Пропустить первый индекс правила проверки массива? - PullRequest
0 голосов
/ 21 декабря 2018

Добрый вечер, разработчики, я пытаюсь пропустить первый индекс массива при применении правила проверки, и это то, что я пробовал до сих пор

$validatedData = Validator::make($request->all(),([
            'inventories.0'      => 'bail',
            'inventories'        => 'required|array|filled',
            'quantities.0'       => 'bail',
            'quantities.*'       => 'required|array|filled',
            'required.0'         => 'bail',
            'required.*'         => 'required|array|filled',
        ]));

Но это не работает, какие-то идеи?Я пытаюсь добавить несколько динамических полей, но хочу пропустить первый индекс этого.Пожалуйста, просмотрите приведенную ниже картинку, чтобы получить четкое представление о проблеме.

enter image description here

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018

Залог не используется для пропуска записи.Но это может быть использовано для пропуска логики проверки.например,

'phone' => 'bail|numeric|unique:users'

В этом случае, если каким-либо образом введенный номер телефона не является числовым, он не будет проверять третье подтверждение (т. е. является ли номер телефона уникальным в таблице «пользователи» или нет).

В вашем случае вы не должны использовать «$ request-> all ()».Вы должны использовать "request () -> кроме (['инвентари [0], количества [0], требуется [0]'])" вместо

0 голосов
/ 21 декабря 2018

Это, пожалуй, не лучшая практика.Вы пытаетесь позволить слою представления иметь непосредственное влияние на уровень данных / логики вашего приложения.Вероятно, было бы лучше отправлять только те данные, которые вы хотите проверить, а не отправлять все, и они связываются, чтобы ваша проверка (и другая логика) игнорировала первый элемент массива.

Это вызов APIили стандартная веб-форма, которую вы отправляете?Если это вызов API, не можете ли вы создать данные только из тех строк, по которым вы хотите отправить, до того, как вы сделаете вызов?

Это сделает ваш логический уровень намного чище и позволит вам изменитьпользовательский интерфейс намного проще, не затрагивая логику, и он тесно связан.

Просто предложение.

0 голосов
/ 21 декабря 2018

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

$validatedData = Validator::make($request->except(['inventories[0],quantities[0],required[0]']),([
    'inventories.*'        => 'required|array|filled',
    'quantities.*'       => 'required|array|filled',
    'required.*'         => 'required|array|filled',
]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...