我尝试使用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确实没有太多帮助......
非常感谢
答案 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
此致