0

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

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

4

1 回答 1

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;

}

或者您可以编写一个等待此类事件的侦听器,这取决于您。

于 2012-09-16T16:17:32.183 回答