2012-07-12 31 views
0

我需要將容器中的'_route'與路由屬性一起傳遞給事件監聽器。換句話說,我需要偵聽器服務變得容器感知,而不需要通過將整個service_container傳遞給事件偵聽器類的開銷。Symfony2:將_route傳遞給事件監聽器服務

我見過類似這樣的代碼示例:

services: 
    root.path.locator: 
     class: Acme\Bundle\HelloBundle\Util\RootLocator 
     arguments: ['%kernel.root_dir%'] 

在控制器我會使用類似下面的代碼來獲取「_route」:

$request = $this->container->get('request'); 
$routeName = $request->get('_route'); 

然而,在事件監聽器,我沒有可用的。

我該如何完成上述操作?

感謝,

JB在服務的XML標籤

回答

1

設置scoperequest。這將自動注入Request對象,然後將@request設置爲參數。在yaml中,設置scope: requestarguments: [@request]

+0

有趣。在傳入Request對象時,它看起來像Request參數數組是空的,它應該包含_route參數。我可以忽略一些東西嗎 – jbsound 2012-07-12 00:56:58

相關問題