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

53

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

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

Есть ли способ объединить их в один оператор, который возвращает массив? Что-то вроде Zend getParams()?

Теги:
request

2 ответа

123
Лучший ответ

Вы можете сделать $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

  • 7
    Чтобы получить значения параметров в пути (например, / posts / {id}), используйте $request->attributes->all() . Я использовал $request->get() думая, что это единственный способ получить эти данные, и пришел сюда в поисках другого пути.
  • 1
    Вы только что сохранили много печатания !!! : D
Показать ещё 1 комментарий
4

В последних версиях Symfony 2.6+ в качестве наилучшей практики запрос передается как аргумент с действием в этом случае вам не нужно явно вызывать $this- > getRequest(), а скорее вызывать $request- > request- > все()

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());
        }

    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню