2012-07-12 6 views
0

컨테이너에서 라우트 속성과 함께 이벤트 리스너로 '_route'를 전달해야합니다. 즉, 전체 service_container를 이벤트 리스너 클래스로 전달하는 오버 헤드를 거치지 않고 컨테이너 인식이 가능하도록 리스너 서비스가 필요합니다. 에,Symfony2 : 이벤트 리스너 서비스에 _route 전달

$request = $this->container->get('request'); 
$routeName = $request->get('_route'); 

그러나 : 나는 아래의 "_route"를 잡기 위해 코드 같은 것을 사용하는 것이 컨트롤러에서

services: 
    root.path.locator: 
     class: Acme\Bundle\HelloBundle\Util\RootLocator 
     arguments: ['%kernel.root_dir%'] 

:

나는이 유사한 코드 예제를 보았다 이벤트 리스너를 사용할 수 없습니다.

어떻게하면됩니까?

감사합니다,

JB

답변

1

설정 scope 서비스 XML 태그에 request합니다. 그러면 자동으로 Request 객체가 삽입되고 @request가 인수로 설정됩니다. yaml의 경우 scope: requestarguments: [@request]을 설정합니다.

+0

흥미 롭습니다. Request 객체가 전달되는 동안 요청 매개 변수 배열이 비어 있으며 _route 매개 변수가 있어야합니다. 나는 무엇인가 내려다보고 있냐? – jbsound