[英]Kohana3 - Error Template if errors = FALSE
在我的Bootstrap.php中,我已禁用了探查器(或者最好是將其激活?)和錯誤。
現在,如果有人正在調用一個Url,例如:/ notexist,並且沒有action_notexist(),則該網站為空。
我的問題:如何創建主錯誤模板,應加載該主模板而不是白頁。 例如,如果您致電: http : //twitter.com/notexistinguser ,則出現“頁面不存在”錯誤,與Kohana3一樣嗎?
謝謝 :)
不要忽略異常,抓住它們。
您需要做的是在bootstrap.php文件中捕獲Kohana_Exception 。 這是我的一個項目的代碼示例。
try
{
echo Request::instance()
->execute()
->send_headers()
->response;
}
catch (Kohana_Exception $e)
{
echo Request::factory('static/404')->execute()->send_headers()->response;
}
我會解釋這里發生了什么。 如果所請求的URL不存在路由,則它將引發Request_Exception (Kohana_Exception的實例)。
然后,我使用HMVC功能創建對404頁面的子請求,該頁面處理模板,狀態代碼,日志記錄和錯誤消息。
將來,Kohana可能會有處理響應的特殊例外,但是現在您可以使用我的解決方案。
希望對您有所幫助。
我是Kohana的新手,但我使用以下技術。 首先,定義一些常量,例如IN_PRODUCTION:
define('IN_PRODUCTION', true);
其次,創建新的Exception類,例如繼承Kohana_Exception的 Exception_404 。 第三,替換此代碼:
echo Request::instance()
->execute()
->send_headers()
->response;
具有以下內容:
$request = Request::instance();
try
{
$request->execute();
}
catch(Exception_404 $e)
{
if ( ! IN_PRODUCTION)
{
throw $e;
}
//404 Not Found
$request->status = 404;
$request->response = View::factory('404');
}
print $request->send_headers()->response;
現在,您有了自己的錯誤模板。 那是你要的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.