2012-05-24 25 views
23

Deseo obtener todos los parámetros de publicación de un formulario de Symfony.¿Cómo obtener todos los parámetros de publicación en Symfony2?

utilicé:

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

y me sale este error

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

En caso de que algunos estén buscando Symfony 3: $ request = Request :: createFromGlobals(); $ a = $ request-> request-> all() –

Respuesta

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

Cuando 'Request $ request' es un parámetro para la acción del controlador:' $ request-> request-> all() ' – jmq

+2

Creo' $ this-> get ('request') 'está en desuso en 2.8 y se eliminó en 3.0. No confirmé De todos modos, el comentario de @jmq lo clavó. –

9

Symfony Request Objects tener algunas propiedades públicas bastantes que representan diferentes partes de la solicitud. Probablemente la forma más fácil de describirlo es que le muestre el código para 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; 
} 

Por lo tanto, como se puede ver, es un Request::$requestParameterBag de los parámetros POST.

+2

* 'ParameterBag', que tiene el método' all() 'para obtener una matriz con todos los parámetros contenidos. –

+0

* 'ParameterBag', que tiene el método' all() 'para obtener una matriz con todos los parámetros contenidos. –

Cuestiones relacionadas