2013-06-10 6 views
3

서비스를 만들고 있는데 '컨테이너'를 인수로 전달하려고합니다. 나는이'컨테이너'를 서비스에 대한 인수로 전달하십시오.

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

내 한국 전기/MemberBundle/Resouces/콩피/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 are called from AJAX

+1

서비스 이름이 '컨테이너'가 아니며 'service_container'입니다. 나는 당신의 원래 질문에서 대답을 고쳤다. 추신 : 전체 컨테이너를 주입하는 대신 직접'security.context'를 주입하는 것이 좋습니다. – igorw

답변

4

컨테이너는 "service_container"라는 서비스로 등록 관련되는, 그래서 당신은 "service_container"뿐 아니라 "용기"를 통과해야합니다 :

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

이 왜 현재 Symfony는이 이름으로 등록 된 사람이 없기 때문에 서비스 "컨테이너"가 무엇인지 이해하지 못합니다!

+0

그것은 좋은 충고를 위해 일합니다. 감사합니다. 나는 어디에서 '이드'를 찾을 수 있는지 모르지만 나는 계속 연구 할 것이다. – whitebear

+0

다음 명령을 실행하여 등록 된 모든 서비스를 나열 할 수 있습니다 : php app/console container : debug;) – Sybio

관련 문제