4

非常に簡単な質問があります。get->Request(); から POST 値を取得するにはどうすればよいですか?

public function emptytrashAction(){
    $request = $this->getRequest();
    $portfolio_id = $_POST["test"];
}

変数を使用したく$_POSTありません。送信するフォームには、この隠しフィールド テストが含まれているだけです。フォームは、

 <form name="empt_trash" action="{{ path('MunichInnovationGroupPatentBundle_portfolio_emptytrash') }}" method="post" >
    <input type="hidden" name="test" value={{ selected_portfolio.id }}>
    <input class="button3 tooltip" name = "submit" type="submit" value="Empty"></a>
 </form>

を使用せずに非表示フィールドの値を取得するにはどうすればよい$_POSTですか?

編集

メソッドがGETリクエストとPOSTリクエストの両方を使用する場合、Postリクエストの場合、次のようにコードをチェックインします

            if ($request->getMethod() == 'POST')

しかし、それはsymfony2の方法ではありません.POSTリクエストをチェックする適切な方法は何ですか?

4

5 に答える 5

8

単純な :

$request  = $this->getRequest();
$postData = $request->request->get('test');

:このソリューションは、Symfony<2.4バージョンでのみ有効です。2.4の場合は非推奨になり、3.0の場合は削除されます。

リクエストを取得するための新しいコードは次のようになります。

$request = $this->container->get('request_stack')->getCurrentRequest();
$postData = $request->request->get('test');
于 2012-06-21T14:00:31.177 に答える
3

$this->getRequest() は symfony 2.4 以降非推奨のメソッドであり、バージョン 3.0 で削除されるため、現在のリクエストを取得する最良の方法は次のコードを使用することです:

//src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php
...

/*
 * ...
 * @deprecated Deprecated since version 2.4, to be removed in 3.0. Ask
 *             Symfony to inject the Request object into your controller
 *             method instead by type hinting it in the method's signature.
 */
public function getRequest()
{
    return $this->container->get('request_stack')->getCurrentRequest();
}

次の進化で導入された、

[FrameworkBundle] 新しい request_stack サービスを使用して、基本コントローラー クラスの Request オブジェクトを取得します。

于 2014-08-22T09:08:15.750 に答える
0

これを試して $this->getRequest()->request->get($path)

于 2012-06-21T14:00:24.533 に答える
0

Symfony2 ブログで説明されているように、Request オブジェクトをコントローラーのメソッドのパラメーターとして直接使用する必要があります。

サービスの場合、__construct メソッドを介してオブジェクトを注入し、内部プロパティに格納できます。

http://symfony.com/blog/new-in-symfony-2-4-the-request-stack

リクエスト メソッドが post であったかどうかを判断するには

if ($request->isMethod('post')) {...}
于 2015-10-01T22:03:26.000 に答える