我正在尝试创建一个自定义异常错误页面,并且我一直在关注Mike 的教程。我已将以下代码插入 config.yml,并在StoreBundle\Controller\ExceptionController.php
. 当我尝试通过 go 测试我的 404 错误页面时local.store.com/fake-page
,出现NotFoundHttpException: No route found for "GET /fake-page"
错误。我认为如果找不到页面,我的 ExceptionController 应该重定向所有用户,所以我在其中添加了一个var_dump('testing')
,但它从未转储。我试图删除我注入的代码config.yml
,然后得到默认的 Symfony 错误页面。我在做错config.yml
什么吗?
插入app/config/config.yml
:
twig:
exception_controller: StoreBundle\Controller\ExceptionController::showAction
编辑
我现在认为我的问题出在我的控制器上。这就是我所拥有的StoreBundle\ControlleExceptionController.php
。我的错误页面在StoreBundle\Resources\views\Pages\Errors\404.html.twig
和StoreBundle\Resources\views\Pages\Errors\500.html.twig
<?php
namespace StoreBundle\Controller;
use Symfony\Component\HttpKernel\Exception\FlattenException;
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\TwigBundle\Controller\ExceptionController as BaseExceptionController;
class ExceptionController extends BaseExceptionController
{
public function showAction(FlattenException $exception, DebugLoggerInterface $logger = null, $format = 'html')
{
$template = $this->container->get('kernel')->isDebug() ? 'exception' : 'error';
$code = $exception->getStatusCode();
return $this->container->get('templating')->renderResponse(
'StoreBundle:Exception:Pages/Errors:' . $code . '.html.twig', array(
'status_code' => $code,
'status_text' => Response::$statusTexts[$code],
'exception' => $exception,
'logger' => null,
'currentContent' => '',
));
}
}
}