Laravel 5:如何处理 json 请求中的嵌套对象


Laravel 5: How to handle nested objects in json request

我刚开始研究Laravel 5。我正在向我的控制器发送 json 请求。它适用于简单的 json。现在我有一个场景,json 将是这样的

{
"orders":[
        {
          "user_id":"1",
          "product_id":"10"
        },
        {
            "user_id":"1",
          "product_id":"15"
        },
    ]
}

对于嵌套对象,它可能会变得更加复杂。在我的控制器中,我一直在做的事情就像

<?php
namespace App'Http'Controllers;
use Illuminate'Http'Request;
use App'Http'Requests;
use App'Http'Controllers'Controller;
class ordersController extends Controller 
{
    public function __construct( Request $request)
    {
      //$this->middleware('products.prodcutsList');
    }
    public function makeOrder(Request $request)
    {
        $order_data= $request->only('orders');
        print_r($order_data);
    }
}

我得到的响应看起来像这样

Array
(
    [orders] => 
)

请指导如何在数组中获取它。

我不确定这会解决您的问题,但是您的json不正确,最后您必须删除多余的逗号:

{
"orders":[
        {
          "user_id":"1",
          "product_id":"10"
        },
        {
            "user_id":"1",
          "product_id":"15"
        }, //remove this comma 
_________^ 
    ]
}

注意:您可以使用以下漂亮的网站来验证您的JSON jsonformatter。

希望这有帮助。

您以表单数据的形式发送数据。使用 php 输入包装器:

$input = file_get_contents('php://input'); // json
print_r(json_decode($input)); // decode to php array