2017-05-30 16 views
1

環境を確認したい場合や、一致するものがある場合は、リダイレクトしたり、一部のビューをロードしたりします。 CIでのエラー処理メカニズムについて私は混乱し複数の環境内でビューをロードするか、redirect()を使用する方法Codeigniter?

if (ENVIRONMENT === "production") 
{ 

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

} 
+0

を扱うことができる方法を理解作るにはindex.php'だけ ''であなたのenvironment'ロジックを配置することが必要ですか? – eeya

+0

エラーが発生したときにリダイレクトするだけです。それで全部です。 –

+0

確認するには、すべてのコントローラに共通の「エラー処理ロジック」を設定する必要がありますか? 'db error'が発生した場合、それを特定の' view'に動的にリダイレクトしたいとします。 (例: 'about' => 'home'/'some-url' => 'home') – eeya

答えて

1

get_instance();は、index.phpの環境のチェック、私は以下のようなものを探しています何
内部の作業ではありません。 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.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常にfalseと思う.. –

+1

私は意図的にfalseに$ bCheckを割り当てます。そこから、あなたの条件(例えば、dbエラーの例外)を確認することができます – eeya

+0

以下のコードのようなかどうか? $ bCheck = $ this-> db-> get($ tb); –