symfony 2コントローラーでは、postから値を取得するたびに、以下を実行する必要があります。
$this->getRequest()->get('value1');
$this->getRequest()->get('value2');
これらを配列を返す1つのステートメントに統合する方法はありますか?ZendのgetParams()のようなものですか?
$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を参照してください。
ベストプラクティスとしての最近の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());
}
}
あなたはコントローラーにいるので、アクションメソッドにはRequest
パラメーターが与えられます。
を使用してすべてのPOSTデータにアクセスできます$request->request->all();
。これにより、キーと値のペアの配列が返されます。
GETリクエストを使用する場合は、を使用してデータにアクセスします$request->query->all();
Symfony 3.4の場合、このようにGETとPOSTの両方のデータにアクセスできます。
役職:
$data = $this->request->request->all();
得る:
$data = $this->request->query->all();