无法获得Laravel4 POST的JSON输入

时间:2013-07-30 12:53:29

标签: php rest post laravel laravel-4

我正在使用Laravel路由来构建RESTful API。我正在路由到控制器。在其中,我的函数“store()”(我的post函数)应该是一个JSON输入,我只是通过返回它来测试它。我似乎能够通过执行Input::get('data')来查看传入的数据,但我无法对其进行json_decode。 json_decode的值只是null。任何人都可以帮助我获得POST到具有JSON数据和访问数据的路由的工作示例吗?

这就是我所拥有的:

路线

Route::post('_api/tools/itementry/items', 'ItemEntryController');

控制器     

class ItemEntryController extends BaseController
{
    //... other functions
    public function store()
    {
        if(Input::has('data'))
        {
            $x = Input::get('data');
            $data = json_decode($x);

            var_dump($data);
        }
    }
}

我正在使用REST测试程序客户端提交包含以下查询字符串参数的帖子:

名称:“数据” 值:{itemNumber:“test1”,createdBy:“rsmith”}

1 个答案:

答案 0 :(得分:2)

这最终成了一个非常愚蠢的问题。我正在做的一切正常,除了我在测试客户端发送的JSON格式不正确。我忘了在关键字符串周围添加引号。

所以,而不是做{itemNumber:“test1”,createdBy:“rsmith”}

我需要做{“itemNumber”:“test1”,“createdBy”:“rsmith”}

现在可行。