2012-09-16 139 views
0

自定義錯誤頁面我創建了一個error404.html.twig頁面來處理頁面未發現異常,例如用戶輸入無效url時。它工作正常,但我也需要根據我的應用程序中的錯誤顯示不同的消息。symfony2自定義錯誤頁面

爲此,我使用帶有消息作爲參數的createNotFoundException()方法,但在引發異常時消息不顯示我總是在error404.html.twig模板中有消息。 那麼如何在我的錯誤頁面模板中顯示來自createNotFoundException()的消息參數?感謝您的幫助

回答

0

error404.html.twig頁面是圍繞通用NotFoundException捕獲的:實際上您可以在dev模式下看到調試跟蹤,但您可以在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; 

} 

或者你可以寫一個監聽器等待這樣的事件,這取決於你。