2

반환합니다. onKernel 요청 메서드에서 나는 하위 도메인을 기반으로 몇 가지 검증을하고 있습니다. 이 유효성 검사가 실패하면 AccessDenied 또는 뭔가 같은 일부 예외를 throw 싶습니다. symfony2 내가 이벤트를 kernel.request 푹 이벤트 리스너가 빈 페이지

문제

나는 예외를 던질 때 내 사용자 지정 오류 페이지 대신 빈 페이지를 표시합니다.

나는 다음과 같은 정보를 얻을 내 prod.log 파일을 선택하면 :

[2013-06-06 11:08:38] request.ERROR: Exception thrown when handling an exception (Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException: This route needs to be accessed with a subdomain) [] [] 
[2013-06-06 11:16:32] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException: "This route needs to be accessed with a subdomain" at (...) line 86 [] [] 

내가 무엇을 놓치고를? 는

+0

당신이'dev' 모드에있어 당신의'php.ini'에 오류보고를 활성화? 빈 페이지가있는 것이 이상합니다. – julesbou

+0

아니요, dev 환경에서는 오류가 표시됩니다. 그게 문제가 아니야. 프로덕션에서 표시되는 오류 페이지를 사용자 정의하여 예외가 발생하는 경우처럼 "응용 프로그램에 오류가 발생했습니다"와 같이 표시하려고합니다. – brpaz

답변

2

예외가 kernel.request 이벤트 기간 동안 사로 잡았되지 않습니다 당신의 도움을 주셔서 감사합니다. 대신 응답을 반환 할 수 있습니다 :이 예제는 리스너와 함께 작동하는 EventSubscriber입니다

class SubdomainSubscriber implements EventSubscriberInterface 
{ 

    public static function getSubscribedEvents() 
    { 
     return [ 
      'kernel.request' => 'onRequest', 
     ]; 
    } 

    public function onRequest(GetResponseEvent $event) 
    { 
     if (!$subdomainValid) { 
      $event->setResponse(new Response('Invalid subdomain!', 403)); 
     } 
    } 
} 

있지만, 너무.