2017-05-30 17 views
1

想要檢查環境,如果匹配某些情況下,然後要重定向或加載一些視圖。 get_instance();不是裏面的index.php那裏的工作環境檢查
我要找的東西象下面這樣:如何在Codeigniter中的多個環境中加載視圖或使用重定向()?

if (ENVIRONMENT === "production") 
{ 

    /*if(error ="db error") 
    redirect("/someview","refresh"); 
    or load view header and footer 
    */ 

} 
+0

是否有必要把你的'environment'邏輯'index.php'只? – eeya

+0

我只是需要重定向時發生一些錯誤。就這樣。 –

+0

只是爲了驗證,你想爲所有控制器設置一個通用的'錯誤處理邏輯'?假設如果發生'db錯誤',你想動態地將它重定向到某個'view'? (例如'about'=>'home'/'some-url'=>'home') – eeya

回答

1

我只是困惑在CI的錯誤處理機制。在stackoverflow用戶的幫助下,我找到了關閉錯誤的步驟。但現在我無法處理這些錯誤。

如果你想處理一個特定的錯誤,您可以將其重定向到在這個過程中一定視圖因爲你已經在你的問題中提到的內容。

// Assuming you have a [Home] Controller that extends to your [Common] parent class 
class Home extends Common { 
    public function index() 
    { 
     $this->load->helper('url'); 
     $bCheck = false; 
     if ($bCheck !== true) { 
      $this->handleRedirectMethod('path/to/your/controller'); 
     } 
    } 
} 

然後在你的父母[Common]控制器上。 (例如的common.php)

class Common extends CI_Controller 
{ 
    public function handleRedirectMethod($sUrl, $sMethodName = 'refresh', $sStatusCode = '302') 
    { 
     $sServerName = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST']; 
     redirect($sServerName . '/' . $sUrl, $sMethodName, $sStatusCode); 
    } 
} 

希望這是您瞭解如何處理這些錯誤

+0

什麼是$ bCheck,爲什麼?我認爲$ bCheck總是假.. –

+1

我將$ bCheck有意地分配給false。從那裏,你可以檢查你的條件(例如db錯誤例外) – eeya

+0

像下面的代碼或不是? $ bCheck = $ this-> db-> get($ tb); –

相關問題