Symfony3,覆盖异常控制器

时间:2017-10-31 12:31:17

标签: symfony

我尝试使用Symfony 3覆盖异常控制器 我在这里跟随他们的例子http://symfony.com/doc/current/controller/error_pages.html但它不起作用

首先我在app / Ressources / TwigBundle中创建了我的错误页面... / error404.html.twig

它可以在没有控制器覆盖的情况下工作。

其次,我在services.yml中添加了services:

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

在我的Controller文件夹中,我创建了一个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()。

我错过了什么吗?

使用Symfony 3确实没有太多帮助......

非常感谢

1 个答案:

答案 0 :(得分:1)

如果您需要覆盖控制器,请尝试以下操作:

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

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

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

Link

此致