如何为对象的多个数组创建laravel API

时间:2019-07-02 17:23:47

标签: php laravel api laravel-5 eloquent

我正在创建对象API的laravel多个数组,但是我的控制器给出了错误

以下是请求

[
    {
    "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'); 

      }

出现错误

  

传递给Illuminate \ Validation \ Factory :: make()的参数1必须为   类型数组,给定对象

结果现在已更改为

{
    "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 :(得分:0)

您要将完整的请求对象而不是值传递给验证器

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

您可以像这样使用*验证(对象的)数组

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