2012-07-31 15 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

あなたは$id変数は、コントローラ内で利用できるようになります

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

を行うことができます。あなたはRequest

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

コントローラからアクセスしたいと思うなら、それは正しいです。質問を編集しました。サービスからアクセスしたいと思っていました。 – acid

8

は、トリックを行います。

+0

'$ request-> attributes-> all()'は '_route_params'を返しませんでしたが、解決策を示唆しました。ありがとう! – acid

関連する問題