Symfony2:将_route传递给事件监听器服务

时间:2012-07-12 00:00:41

标签: php symfony

我需要通过' _route'从容器到事件监听器,以及路由属性。换句话说,我需要监听器服务成为容器感知,而不需要将整个service_container传递给事件监听器类。

我见过类似的代码示例:

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

1 个答案:

答案 0 :(得分:1)

在服务xml标记上将scope设置为request。这将自动注入Request对象,然后将@request设置为参数。在yaml中,设置scope: requestarguments: [@request]