2015-01-07 30 views
1

這是我的路線Symfony2的閱讀路徑參數

personeelslid_personeelslid_detail: 
pattern: /personeelslid/detail/{personeelId} 
defaults: 
    _controller: PersoneelPersoneelslidBundle:Personeelslid:detail 
    _menu_icon: fa-user 

locatiebeheer_kind_detail: 
pattern: /locatiebeheer/kind/detail/{kindId} 
defaults: { _controller: PersoneelLocatiemanagerBundle:KindDetail:detail } 

在我使用MenuBuilder我遍歷所有路線和獲取例如_menu_icon:

$routeObject = $this->_router->getRouteCollection()->get($route);    

$menu_icon = $routeObject->getDefault('_menu_icon'); 

我如何可以獲取變量名personeelId,kindId, 我需要te鍵,所以我可以設置routeParameter屬性。

回答

2

如果需要,您可以將自定義鍵添加到defaults選項。例如:

personeelslid_personeelslid_detail: 
path: /personeelslid/detail/{personeelId} 
defaults: 
    _controller: PersoneelPersoneelslidBundle:Personeelslid:detail 
    _menu_icon: fa-user 
    my_custom_key: personeelId 

,並得到它:

$myCustomKey = $routeObject->getDefault('my_custom_key'); 

如果你想獲取通配符的值,你不能」做這樣的方式(通過getRouteCollection),從Request對象獲取它(如$request->attributes->all())..

+0

謝謝,我知道這個選項。希望有更優雅的方式。那麼我會這樣做。 – Bart

+1

@Bart我還沒有看到更好的選擇,只有這種方式或PHP的'explode'函數和正則表達式與'getRouteCollection' :) – xurshid29