3

我正在提供服务并希望将“容器”作为参数传递。因为我想这样使用

$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>

但它说“服务“acme.memberbundle.calendar_listener”依赖于不存在的服务“容器”。

如何将我的容器传递给服务?

这个问题是相关的How to get userid from eventlistener which is called from AJAX

4

1 回答 1

4

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

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

这就是为什么目前 Symfony 不明白什么是服务“容器”,因为没有人使用这个名称注册!

于 2013-06-10T14:44:30.397 回答