2012-12-28 37 views
1

我的大部分Symfony應用程序在每個包的控制器「前端」和「後端」的兩個子目錄中分開。我想要做的是對於前端和後端404錯誤有兩個不同的錯誤頁面。它很容易只是覆蓋通用的樹枝錯誤模板,但我想知道最好的方法來確定它是否應該呈現前端或後端錯誤模板。我是否必須重寫Twig異常處理或者有一些內置的功能可以做到這一點。謝謝!Symfony2多個錯誤頁面

回答

0

後端用戶是否只使用後端,或者他們是否也可以使用前端?如果通過身份驗證的用戶只使用後端,那麼您可以在您的404模板中添加一條if語句。

{% if is_granted('ROLE_ADMIN') %} 
    {# authenticated 404 markup #} 
    ... 
{% else %} 
    {# standard 404 markup #} 
    ... 
{% endif %} 
+0

不,他們也可以使用前端,他們被認爲是普通用戶,但也可以訪問所有的後端功能,所以我不認爲這會工作。 – Feras

-2

有一個包我已經爲這個功能做,它從「kernel.exception_listener」監聽器,並在文件(http://symfony.com/doc/current/cookbook/controller/error_pages.html#use-kernel-exception-event)中描述的「kernel.exception」事件的作品。

有了這個包,你可以:

  1. 變化從路線的正則表達式的樹枝例外模板你想
  2. 更改爲某些碼HTTP狀態代碼樹枝例外模板只
  3. 啓用/禁用https://github.com/Kwrz/TwigException

    :在調試模式

鏈接到束(MIT許可證)的自定義模板

希望它的幫助!