2012-06-27 22 views
55

In symfony 2 controller, ogni volta che vogliono ottenere un valore dal post ho bisogno di correre:Ottenere tutti i parametri di richiesta in Symfony 2

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

Esiste un modo per consolidare questi in una dichiarazione che sarebbe tornato un array? Qualcosa come getParams() di Zend?

risposta

121

È possibile eseguire $this->getRequest()->query->all(); per ottenere tutti i parametri GET e $this->getRequest()->request->all(); per ottenere tutti i parametri POST.

Quindi nel tuo caso:

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

Per ulteriori informazioni sulla classe Request, vedere http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html

+7

per ottenere i valori per i parametri del percorso (ad esempio/messaggi/{ id}) usa '$ request-> attributes-> tutti() '. Stavo usando '$ request-> get()' pensando che fosse l'unico modo per ottenere questi dati e venivo qui cercando un altro modo. – Dreen

+1

Hai appena salvato un sacco di caratteri !!! : D –

+0

Questo non funziona con multipart/form-data. –

6

con le recenti versioni Symfony 2.6+ come best richiesta pratica viene passata come argomento con l'azione in quel caso in cui non sarà necessario chiamare esplicitamente $ this-> getRequest(), ma piuttosto chiamare $ request-> request-> tutto()

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

    } 
Problemi correlati