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

时间:2016-01-16 17:49:47

标签: php json laravel laravel-5 httprequest

我刚刚开始使用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] => 
)

请指导我如何在数组中获取此内容。

2 个答案:

答案 0 :(得分:1)

我不确定这会解决你的问题,但你的json不正确你最后要删除额外的逗号:

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

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

希望这有帮助。

答案 1 :(得分:0)

您将数据作为表单数据发送。使用php输入包装器:

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