Symfony2 - ExceptionController - NotFoundHttpException

时间:2013-01-14 19:53:26

标签: symfony

我正在尝试创建自定义异常错误页面,我一直关注Mike's tutorial。我已将以下代码插入config.yml,并在StoreBundle\Controller\ExceptionController.php中创建了一个ExceptionController。当我尝试通过local.store.com/fake-page测试我的404错误页面时,出现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.twigStoreBundle\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' => '',
            ));

        }
    }
}

0 个答案:

没有答案