我需要通过' _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
答案 0 :(得分:1)
在服务xml标记上将scope
设置为request
。这将自动注入Request对象,然后将@request设置为参数。在yaml中,设置scope: request
和arguments: [@request]
。