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」は、存在しないサービス「コンテナ」に依存しています」と表示されます。

コンテナーをサービスに渡すにはどうすればよいですか?

この問題は、AJAX から呼び出される eventlistener からユーザー ID を取得する方法に関連しています

4

1 に答える 1

4

コンテナーは「service_container」というサービスとして登録されるため、「container」だけでなく「service_container」も渡す必要があります。

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

これが、現在 Symfony がサービス「コンテナ」とは何かを理解していない理由です。この名前で登録されている人は誰もいないからです!

于 2013-06-10T14:44:30.397 に答える