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