現在、Symfony2 イベント リスナーを使用して、ユーザーの認証ステータスに基づいてコントローラーを別のコントローラーに変更しています。リスナーに新しいコントローラーを設定させますが、コンテナー パラメーターなしでインスタンス化されます (つまり、$this->container は null を返します)。
変更先のコントローラーにコンテナーを渡す方法はありますか?
class AuthenticationListener
{
public function onController(FilterControllerEvent $event)
{
$request = $event->getRequest();
$session = $request->getSession();
if (!$session->has('authenticated') || $session->get('authenticated') === false)
{
$controller = $event->getController();
if (!($controller[0] instanceof AuthenticateController) && !($controller[0] instanceof ExceptionController))
{
$event->setController(array(new AuthenticateController(), 'loginAction'));
}
}
}
}