8

Laravel4 Beta3 で開発していたときは、Input::json() 関数を使用してサービスから JSON POST データを取得していましたが、Laravel4 Beta4 に更新すると、次のエラーが発生します。

注意: 未定義のプロパティ: Symfony\Component\HttpFoundation\ParameterBag::$productName /Applications/MAMP/htdocs/commonDBAPI/app/controllers/UserController.php 行 47

理由は何か、何か考えはありますか。

ありがとう、

4

3 に答える 3

15

を使用して JSON だけにアクセスできますInput::json()->all()

JSON 入力もInput::all()(および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

For : { "name":"Olivier", "title":"ちょっとやってみる" }

これを試して :

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

$input['name']; を返します。

于 2014-05-26T23:42:39.417 に答える