将'container'作为参数传递给service

时间:2013-06-10 14:38:42

标签: symfony

我正在制作服务,并希望将'container'作为参数传递。 因为我想像这样使用

$user = $this->container->get('security.context')->getToken()->getUser();

我的Acme / MemberBundle / Resouces / confit / services.xml如下所示。

  

<services>
    <service id="acme.memberbundle.calendar_listener" class="Acme\MemberBundle\EventListener\CalendarEventListener">
        <argument type="service" id="container" />
        <tag name="kernel.event_listener" event="calendar.load_events" method="loadEvents" />
    </service>

</services>

但它说 'service“acme.memberbundle.calendar_listener”依赖于不存在的服务“container”'。

如何将容器传递给服务?

这个问题与How to get userid from eventlistener which are called from AJAX

有关

1 个答案:

答案 0 :(得分:4)

容器被注册为名为“service_container”的服务,因此您必须传递“service_container”而不仅仅是“容器”:

<argument type="service" id="service_container" />

这就是为什么目前Symfony不了解什么是服务“容器”,因为没有人注册这个名字!