2012-05-24 3 views
23

Ich möchte alle Post-Parameter einer symfony Form erhalten.Wie erhalten Sie alle Post-Parameter in Symfony2?

I verwendet:

$all_parameter = $this->get('request')->getParameterHolder()->getAll(); 

und ich bekomme diese Fehlermeldung

Fatal error: Call to undefined method Symfony\Component\HttpFoundation\Request::getParameterHolder() in /Library/WebServer/Documents/Symfony/src/Uae/PortailBundle/Controller/NoteController.php on line 95 
+0

Falls einige nach Symfony 3 suchen: $ request = Request :: createFromGlobals(); $ a = $ request-> request-> all() –

Antwort

76
$this->get('request')->request->all() 
+14

Wenn 'Request $ request' ein Parameter für die Controller-Aktion ist:' $ request-> request-> all() ' – jmq

+2

Ich denke' $ this-> get ('request') 'ist in 2.8 veraltet und wurde in 3.0 entfernt. Bestätigte nicht. Wie auch immer, der Kommentar von @jmq hat es genagelt. –

9

Symfony Request Objects haben schon einige öffentliche Eigenschaften, die verschiedene Teile des Antrags darstellen. Wahrscheinlich der einfachste Weg, es zu beschreiben, ist Sie den Code zu zeigen, für Request::initialize()

/** 
* Sets the parameters for this request. 
* 
* This method also re-initializes all properties. 
* 
* @param array $query  The GET parameters 
* @param array $request The POST parameters 
* @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) 
* @param array $cookies The COOKIE parameters 
* @param array $files  The FILES parameters 
* @param array $server  The SERVER parameters 
* @param string $content The raw body data 
* 
* @api 
*/ 
public function initialize(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null) 
{ 
    $this->request = new ParameterBag($request); 
    $this->query = new ParameterBag($query); 
    $this->attributes = new ParameterBag($attributes); 
    $this->cookies = new ParameterBag($cookies); 
    $this->files = new FileBag($files); 
    $this->server = new ServerBag($server); 
    $this->headers = new HeaderBag($this->server->getHeaders()); 

    $this->content = $content; 
    $this->languages = null; 
    $this->charsets = null; 
    $this->acceptableContentTypes = null; 
    $this->pathInfo = null; 
    $this->requestUri = null; 
    $this->baseUrl = null; 
    $this->basePath = null; 
    $this->method = null; 
    $this->format = null; 
} 

So, wie Sie sehen können, Request::$request ist ein ParameterBag der POST-Parameter.

+2

* 'ParameterBag', die' all() 'Methode hat, um ein Array mit allen enthaltenen Parametern zu erhalten. –

+0

* 'ParameterBag', die' all() 'Methode hat, um ein Array mit allen enthaltenen Parametern zu erhalten. –

Verwandte Themen