74

symfony 2コントローラーでは、postから値を取得するたびに、以下を実行する必要があります。

$this->getRequest()->get('value1');
$this->getRequest()->get('value2');

これらを配列を返す1つのステートメントに統合する方法はありますか?ZendのgetParams()のようなものですか?

4

4 に答える 4

161

$this->getRequest()->query->all();すべてのGETパラメータ$this->getRequest()->request->all();を取得し、すべてのPOSTパラメータを取得するために行うことができます。

だからあなたの場合:

$params = $this->getRequest()->request->all();
$params['value1'];
$params['value2'];

Requestクラスの詳細については、http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.htmlを参照してください。

于 2012-06-27T13:30:22.747 に答える
12

ベストプラクティスとしての最近のSymfony2.6以降のバージョンでは、リクエストはアクション付きの引数として渡されます。その場合、明示的に$ this-> getRequest()を呼び出す必要はなく、$ request-> request-> all()を呼び出す必要があります。

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException;
use Symfony\Component\HttpFoundation\RedirectResponse;

    class SampleController extends Controller
    {


        public function indexAction(Request $request) {

           var_dump($request->request->all());
        }

    }
于 2015-10-25T09:16:47.903 に答える
2

あなたはコントローラーにいるので、アクションメソッドにはRequestパラメーターが与えられます。

を使用してすべてのPOSTデータにアクセスできます$request->request->all();。これにより、キーと値のペアの配列が返されます。

GETリクエストを使用する場合は、を使用してデータにアクセスします$request->query->all();

于 2020-10-01T07:31:28.740 に答える
1

Symfony 3.4の場合、このようにGETPOSTの両方のデータにアクセスできます。

役職:

$data = $this->request->request->all();

得る:

$data = $this->request->query->all();
于 2021-09-19T12:46:02.617 に答える