Как добавить проверку для вложенного массива объектов - PullRequest
0 голосов
/ 14 апреля 2019

Я проверяю свой запрос API в контроллере Laravel. Он состоит из массива объектов, каждый из которых необходимо проверить.

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

{
    "total" : 250.00,
    "merchant_id" : 1,
    "discount" : 0,
    "items" :  {
        [id: 1, quantity: 25, notes: "some string A"],
        [id: 2, quantity: 10, notes: "some string B"],
        [id: 3, quantity: 5, notes: "some string C"]
    }
}

Каждый параметр основного объекта (итог, merchant_id, скидка), а также параметры вложенного массива (идентификатор, количество, примечания) должны быть проверены

Ответы [ 2 ]

2 голосов
/ 14 апреля 2019

Используйте обозначение .*, указанное в https://laravel.com/docs/5.8/validation#validating-arrays

1 голос
/ 14 апреля 2019

Допустим, все они необходимы.Вы можете проверить это так:

$validator = Validator::make($request->all(), [
    'total' => 'required',
    'merchant_id' => 'required',
    'discount' => 'required',
    'items.*.id' => 'required',
    'items.*.quantity' => 'required',
    'items.*.notes' => 'required',
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...