2012-02-20 27 views
13

Necesito poner una bandera en un kernel.event_listener en la etapa kernel.controller para hacer algo en un kernel.response -listener.Agregar parámetro de solicitud para solicitar

I pensado en añadir un parámetro al objeto $request, sin embargo no han encontrado ningún método o esta:

http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/Request.html

Cuál es la mejor práctica de pasar alguna informatino de un -listener kernel.controller a un kernel.response -¿oyente?

de casos de uso:

  • Queremos establecer una cookie en base a una validación de un atributo de la petición específica (debe estar en kernel.controller -etapa, porque está basada en el resultado de la validación, la vista se puede comportar diferente).
  • La cookie solo se puede establecer en el kernel.response -listener, ya que tiene el Response -instance.
+0

no recibe su pregunta. ¿Por qué no puede simplemente usar un objeto simple que almacenará las cookies que deberá enviar antes de que se envíe la respuesta? – meze

+0

Thx, he actualizado la pregunta para que quede más clara. – Chris

Respuesta

29

Puede usar $request->attributes para pasar la información. En su controlador oyente:

$request->attributes->set('mykey', 'myvalue'); 

en su oyente respuesta:

$myvalue = $request->attributes->get('mykey'); 
Cuestiones relacionadas