我正在制作服务,并希望将'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
有关答案 0 :(得分:4)
容器被注册为名为“service_container”的服务,因此您必须传递“service_container”而不仅仅是“容器”:
<argument type="service" id="service_container" />
这就是为什么目前Symfony不了解什么是服务“容器”,因为没有人注册这个名字!