2012-07-31 15 views
5

Sé que puedo acceder al nombre de la ruta actual por $request->get('_route');.Symfony2 Acceso a variables de ruta

Si mi ruta se define de esta manera:

/* 
* @Route("/get_by_category/{id}", defaults={"id" = 0}, name="get_products_by_category") 
*/ 

¿Cómo puedo recuperar la variable id desde el interior de servicio?

Respuesta

5

$request->attributes->get('id') hace el truco.

3

Se puede hacer

/* 
* @Route("/get_by_category/{id}", defaults={"id" = 0}, name="get_products_by_category") 
*/ 
public function getProductsAction($id) 
{ 
} 

estará disponible dentro del controlador La variable $id.

+0

Eso es correcto, suponiendo que quiero acceder desde el controlador. He editado la pregunta: quería acceder a ella desde el servicio. – acid

8

Usted puede obtener toda la ruta de parámetros relacionados de la Request

$routeParams = $request->attributes->get('_route_params'); 
$id = $routeParams['id']; 
+0

Si bien no funcionó - '$ request-> attributes-> all()' no devolvió '_route_params', sugirió la solución. ¡Gracias! – acid

Cuestiones relacionadas