web-dev-qa-db-fra.com

Obtenir tous les paramètres de requête dans Symfony 2

Dans symfony 2 contrôleurs, chaque fois que je veux obtenir une valeur de post, je dois exécuter:

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

Existe-t-il un moyen de les regrouper en une seule déclaration qui renverrait un tableau? Quelque chose comme getParams de Zend ()?

65
ContextSwitch

Vous pouvez faire $this->getRequest()->query->all(); pour obtenir tous les paramètres GET et $this->getRequest()->request->all(); pour obtenir tous les paramètres POST.

Donc dans votre cas:

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

Pour plus d'informations sur la classe Request, voir http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html

144
Guillaume Flandre

Avec les versions récentes de Symfony 2.6+ comme pratique recommandée, Request est passé comme argument avec action dans ce cas, vous n'aurez pas à appeler explicitement $ this-> getRequest (), mais plutôt à $ 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());
        }

    }
9
Aftab Naveed