Получение всех параметров запроса в Symfony 2


в контроллерах symfony 2 каждый раз, когда я хочу получить значение из post, мне нужно запустить:

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

есть ли способ объединить их в один оператор, который вернет массив? Что-то вроде zend's getParams()?

2 59

2 ответа:

можно сделать $this->getRequest()->query->all(); чтобы получить все получить params и $this->getRequest()->request->all(); чтобы получить все параметры.

Так что в вашем случае:

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

дополнительные сведения о классе запроса см. В разделе http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html

С последними версиями Symfony 2.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());
        }

    }