symfony2自定义错误页面

时间:2012-09-16 16:11:53

标签: symfony

要自定义错误页面,我创建了一个error404.html.twig页面来处理页面未找到的异常,例如当用户输入无效的URL时。它工作正常但我还需要根据我的应用程序中的错误显示不同的消息。

为此,我使用createNotFoundException()方法并将消息作为参数,但是当抛出异常时消息不会出现我总是在error404.html.twig模板中有消息。 那么如何在错误页面模板中显示createNotFoundException()中的message参数?谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

error404.html.twig页面是一个关于通用NotFoundException的问题:事实上,您确实在开发模式下看到了调试跟踪,但是您在prod中看到了精美的自定义HTML。

如果您需要自定义404行为,则必须手动构建Response,注入正确的404 Not Found状态,然后是正确的身体。

$product = $em -> getRepository("Acme:Product") -> findOneById( $id );

if($product === NULL)
{

    $response = $this -> render('YourBundle::Errors/404.html.twig', array(
        'message'   => 'blah blah'
    ));

    $response -> setStatus(404);    

    return $response;

}

或者你可以写一个等待这种事件的听众,这取决于你。