2012-07-31 14 views
5

$request->get('_route');에 의해 현재 경로 이름에 액세스 할 수 있다는 것을 알고 있습니다.Symfony2 경로 변수에 액세스하기

내 경로가 이런 식으로 정의 된 경우 :

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

가 어떻게 서비스 내에서 id 변수를 검색 할 수 있습니다 ?

답변

5

$request->attributes->get('id')에서 모든 경로 관련 파라미터는 트릭을 수행 얻을 수 있습니다.

3

당신은

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

$id 변수는 컨트롤러 내에서 사용할 수 있습니다 할 수 있습니다.

+0

컨트롤러에서 액세스하려고한다고 가정하면 올바르다. 질문을 편집했습니다. 서비스에서 액세스하려고했습니다. – acid

8

당신은 Request

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

'$ request-> attributes-> all()'은'_route_params'를 리턴하지 못했지만 해결책을 제시했습니다. 감사! – acid

관련 문제