簡體   English   中英

Kohana3-如果錯誤= FALSE,則顯示錯誤模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM