В контроллерах symfony 2 каждый раз, когда я хочу получить значение из сообщения, мне нужно запустить:
$this->getRequest()->get('value1'); $this->getRequest()->get('value2');
Есть ли способ объединить их в один оператор, который возвращает массив? Что-то вроде getParams () Zend?
Вы можете сделать $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.
С последними версиями 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()); } }