2011-10-28 103 views
1

我改變這一行config.php文件創建了自己的自定義錯誤頁笨 - 得到錯誤信息

$route['404_override'] = 'main/_404'; 

所以現在它加載正確的頁面,在我的控制器加載_404功能

問題是,我還是希望能夠拿到$標題中的默認頁顯示& $消息錯誤變量,顯示爲一把拉住:

<div id="container"> 
    <h1><?php echo $heading; ?></h1> 
    <?php echo $message; ?> 
</div> 

這裏併購Ÿ_404功能,如果任何人都可以給我一些建議如何添加這些變量我將不勝感激

public function _404() { 
     $data['query'] = array('title' => 'Page not found.', 'keywords' => '', 'description' => 'Page not found', 'page' => 'error'); 


     $this->load->view('parts/head',$data); 
     $this->load->view('parts/_404');// <- would go here 
     $this->load->view('parts/footer'); 
    } 

回答

3

嗯,其實,兩件事情:

1)在你重新路由404頁,你應該能夠定期傳遞你想要的任何變量,所以你可以簡單地$this->load->view('parts/_404',$data);,並有可用的變量。

2)如果你談論的是默認的404頁面,請記住,它不能在一定circustamces覆蓋,即當show_404()核心函數被調用:

它贏得了」 t影響到show_404()函數,它將繼續 加載默認error_404.php文件 application/errors/error_404.php。

此函數屬於異常處理程序類。還有,實際上,在管線90必須

function show_404($page = '', $log_error = TRUE) 
    { 
     $heading = "404 Page Not Found"; 
     $message = "The page you requested was not found."; 

     // By default we log this, but allow a dev to skip it 
     if ($log_error) 
     { 
      log_message('error', '404 Page Not Found --> '.$page); 
     } 

     echo $this->show_error($heading, $message, 'error_404', 404); 
     exit; 
    } 

繼而調用show_error()方法至極設置頭錯誤代碼(第四參數)和添加指定視圖(第三參數),以視圖緩衝區。

正如你可以看到消息在這裏硬編碼的方法。如果您想要進行全面的定製,您可以覆蓋這個方法(例如,在同一個類中調用另一個函數),或者直接對其中的其他消息進行硬編碼。

+0

謝謝,我沒有意識到他們是靜態變量 –