8

当我在 Laravel4 Beta3 中开发时,我曾经使用 Input::json() 函数从服务中获取 JSON POST 数据,但是当我更新到 Laravel4 Beta4 时,出现以下错误:

注意:未定义的属性:/Applications/MAMP/htdocs/commonDBAPI/app/controllers/UserController.php 第 47 行中的 Symfony\Component\HttpFoundation\ParameterBag::$productName

有没有人有任何想法,可能是什么原因。

谢谢,

4

3 回答 3

15

您可以使用仅访问 JSON Input::json()->all()

JSON 输入也被合并到Input::all()(and Input::get('key', 'default')) 中,因此您可以使用相同的接口来获取查询字符串数据、表单数据和 JSON 有效负载。

该文档尚未反映所有更改,因为 Laravel 4 仍处于测试阶段,并且重点是正确编写代码,文档将进行更新,为公开发布做好准备。


JSON 如何与 Input::all() 合并?

考虑以下 JSON:

{
    'name': 'Phill Sparks',
    'location': 'England',
    'skills': [
        'PHP',
        'MySQL',
        'Laravel'
    ],
    'jobs': [
        {
            'org': 'Laravel',
            'role': 'Quality Team',
            'since': 2012
        }
    ]
}

当合并到 Laravel 的输入中时,JSON 被解码,顶级键成为输入中的顶级键。例如:

Input::get('name'); // string
Input::get('skills'); // array
Input::get('jobs.0'); // object
Input::all(); // Full structure of JSON, plus other input
于 2013-04-11T11:59:01.740 回答
0

是的,他们将其更改为返回一个 ParameterBag 对象,将您的代码切换为 Input::json()->all()

于 2013-04-04T23:34:40.837 回答
0

For : { "name":"Olivier", "title":"Just a try" }

试试这个 :

$input = 输入::json()->all();

返回 $input['name'];

于 2014-05-26T23:42:39.417 回答