2017-03-03 17 views
1

リクエストクラスからマージされたデータを取得する方法はありますか?現在のところ、POSTとGETの両方のクエリを受け入れるAPIコントローラ用にフォームを手動で送信しているため(これは従来のプロジェクトのためにREST APIではありません)Symfony GETリクエストとPOSTリクエストの両方を手動で提出する

$data = array_merge($request->query->all(), $request->request->all()); 
$form->submit($data); 

以下のコードではなくクリーナーを書く方法はありますか?

$data = array_merge($request->query->all(), $request->request->all()); 

答えて

1

私はそれがない可能だと思います。 あなたがsource code of Requestを見れば、あなたはsymfonyはリクエストを作成するとき、symfonyは$this->request$this->query$_POSTにグローバル変数$_GETを入れていることがわかります

(たぶん私は間違っています)。
両方をとるSymfony変数はありません。

1か所にしか必要がない場合は、あなたがしたことは問題ないと思います。

そうでない場合は、このコードを要因とするサービスを作成します。 symfonyはmergeになりますが、それはPHPの設定(あなたのphp.inirequest_orderパラメータ)に依存するため

別の解決策は、グローバル変数$_REQUESTを使用することです。あなたが複数の場所でそれを行う必要がある場合
しかし、私は

+0

(symfonyのoverwritesそれらに加えて)... symfonyでSuperglobals変数を使用すると、良いアイデアだとは思わない、私は注釈を作成することをお勧め。 – Terenoth

+0

@Terenoth注釈とは何ですか? –

+0

@ SergeySmirnov私はカスタム注釈を意味しました。このチュートリアルを見てください:https://www.sitepoint.com/your-own-custom-annotations/ – Terenoth

関連する問題