0
我正在使用symfony 2.8版本和php模板。我可以用php模板創建一個自定義的錯誤頁面嗎?Symfony PHP Template自定義錯誤頁面
我正在使用symfony 2.8版本和php模板。我可以用php模板創建一個自定義的錯誤頁面嗎?Symfony PHP Template自定義錯誤頁面
當然。
在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
);
}
}
當然......爲什麼不呢? – ceejayoz
是的,你可以。在symfony食譜中描述了完成這一過程的過程。 –