Как создать API laravel для нескольких массивов объекта - PullRequest
0 голосов
/ 02 июля 2019

Я создаю множественный массив объектов API, но мой контроллер выдает ошибку

Ниже приведен запрос

[
    {
    "ProductTitle": "Clarks Men's Tilden Cap Oxford shoe",
    "ProductColor": "Dark tan leather",
    "ProductImage": "imageurl"
         }
         ,
    {
    "ProductTitle": "Clarks Men's Tilden Cap Oxford shoe",
    "ProductColor": "Dark tan leather",
    "ProductImage": "imageurl"
        }
]

Контроллер моего API-магазина показан ниже

public function store(Request $request)
    {



        $input = $request;


        $validator = Validator::make($input,  [
            'ProductTitle' => 'required',
            'ProductColor' => 'required',
            'ProductImage' => 'required'
             ]);


        if($validator->fails()){
            return $this->sendError('Validation Error.', $validator->errors());       
        }
        $cartdetails=shopCartDetails::create($request->all());

        return $this->sendResponse( $cartdetails,'Great success! cart details posted'); 

      }

Получаю ошибку

Аргумент 1 передан в Illuminate \ Validation \ Factory :: make () должен быть типа массив, заданный объект,

результаты теперь изменились на

{
    "success": false,
    "message": "Validation Error.",
    "data": {
        "ProductTitle": [
            "The product title field is required."
        ],
        "ProductColor": [
            "The product color field is required."
        ],
        "ProductImage": [
            "The product image field is required."
        ]

    } }

кажется, он получает только один массив

1 Ответ

0 голосов
/ 03 июля 2019

Вы передаете полный объект запроса вместо значений вашему валидатору

Validator::make($request->all()...

Вы можете проверять массивы (объектов), используя * как этот

$validator = Validator::make($request->all(),  [
    '*.ProductTitle' => 'required',
    '*.ProductColor' => 'required',
    '*.ProductImage' => 'required'
]);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...