2017-10-31 15 views
1

は、私はここにhttp://symfony.com/doc/current/controller/error_pages.html彼らの例を踏襲symfonyの3 で例外コントローラーを上書きしようとするが、それはそれで最初、私はアプリ/ Ressources/TwigBundleで私のエラーページを作成しているSymfony3、オーバーライド例外コントローラ

を動作しません。.. ./error404.html.twig

コントローラのオーバーライドなしで機能します。

第二に、私はサービスの下で、services.ymlに追加しました:私のコントローラのフォルダ内の

frontBundle\Controller\CustomExceptionController: 
    public: true 
    arguments: 
     $debug: '%kernel.debug%' 

は第三に、私はCustomExceptionController.php インサイドを作成して、私は(私はfindtempleを上書きしたい(入れています))

namespace frontBundle\Controller; 

use Symfony\Bundle\TwigBundle\Controller\ExceptionController; 
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference; 
use Symfony\Component\HttpFoundation\Request; 

class CustomExceptionController extends ExceptionController 
{ 
    /** 
    * @param Request $request 
    * @param string $format 
    * @param int  $code  An HTTP response status code 
    * @param bool $showException 
    * 
    * @return TemplateReferenceInterface 
    */ 
    protected function findTemplate(Request $request, $format, $code, 
$showException) 
    { 

    } 
} 

ただし、動作しません。この新しいコントローラは考慮されておらず、findTemplate()はオーバーライドされません。

私は何かを見逃しましたか?

# app/config/services.yml 
services: 
    _defaults: 
     # ... be sure autowiring is enabled 
     autowire: true 
    # ... 

    AppBundle\Controller\CustomExceptionController: 
     public: true 
     arguments: 
      $debug: '%kernel.debug%' 

と:あなたは、コントローラは、これを試してオーバーライドする必要がある場合は

symfonyの3 ...

とそのことについて多くの援助が本当にありませんがそんなに

+0

。 yml'(あなたのリンクに記載されています)? – sim100

+0

をテストするために、新しいerror404ページ名へのパスだけで保護された関数findTemplate()内のいくつかのコードを置くことを私は正確

よろしく

ccKep

+0

@ccKep:「exception_controller:frontBundle:Exception:showException」を追加すると、「致命的なエラー:未知の例外 'Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException' ...」が発生する – sim100

答えて

1

ありがとう:

# app/config/config.yml 
twig: 
    exception_controller: AppBundle:Exception:showException 

Link

私はあなたがあなたの `config内の設定exception_controller``小枝を追加しましたちょうど
+0

"exception_controller:AppBundle:Exception:showException"を追加し、AppBundleをfrontBundleに置き換えました。それを使ってさらにファイルを作成する必要がありますか? – sim100

関連する問題