Symfony PHP Template自定义错误页面

Symfony PHP Template自定义错误页面

问题描述:

我正在使用symfony 2.8版本和php模板。我可以用php模板创建一个自定义的错误页面吗?Symfony PHP Template自定义错误页面

+0

当然......为什么不呢? – ceejayoz

+3

是的,你可以。在symfony食谱中描述了完成这一过程的过程。 –

当然。

services.yml,添加一个监听器例外:

listener.exception: 
    class: Symfony\Component\HttpKernel\EventListener\ExceptionListener 
    arguments: ["MyWebsite\\Controller\\ExceptionController::exceptionAction"] 
    tags: 
     - {name: 'kernel.event_subscriber'} 

那么你的控制器是一个普通的一个:

<?php 

namespace MyWebsite\Controller; 

use Symfony\Component\Debug\Exception\FlattenException; 
use Symfony\Component\HttpFoundation\Response; 

class ExceptionController extends AbstractController 
{ 
    public function exceptionAction(FlattenException $exception) 
    { 
     $text = $exception->getMessage() ; 
     if (isset(Response::$statusTexts[$exception->getStatusCode()])) { 
      $text = Response::$statusTexts[$exception->getStatusCode()]; 
     } 
     $response = new Response(null); 
     $response->setStatusCode($exception->getStatusCode()); 
     return $this->render(
      'exception.html.twig', // Here your template 
      ['error' =>$text], 
      $response 
     ); 
    } 
}