0

CodeIgniter で Web アプリケーションを作成していて、ユーザー アクティベーションを適用しようとしています。

    function is_active() {
        $active_state = $this->my_model->check_active();
        if ($active_state == 'no') {
            $this->load->view('activation_page');
            die();
        }
    }

上記のコードは空白のページを生成し、die(); を削除すると 場合は、activation_page と一緒に members_area を出力します

では、要求されたビューを強制的にロードして終了するにはどうすればよいですか?

4

4 に答える 4

1

明らかに、if ステートメントの中には入っていません。つまり、ユーザーがアクティブでない場合は、アクティベーション ページをロードします。

それでも、ユーザーがアクティブな場合にビューをロードするelseはありません。

試す:

 if ($active_state == 'no') {
    $this->load->view('activation_page');
 } 
 $this->load->view('members_area');

注: if 条件を元に戻したい場合があります。ユーザーがアクティブかどうかを確認する方がより論理的に見えます。そうでない場合は、アクティブ化ページにフォールバックします。

編集:

このコードを参照してください: http://paste.laravel.com/pfO

注 2: 多くの可能な解決策の 1 つ。

于 2013-04-25T09:41:11.833 に答える
1

試す

 if ($active_state == 'no') {
    $this->load->view('activation_page');
    return false;
 }
于 2013-04-25T09:37:22.083 に答える
1

if 条件を適切に使用する必要がありました

if ($active_state == 'no') {
    $this->load->view('activation_page');
}else{
    $this->load->view('members_area');
} 
于 2013-04-25T09:48:49.240 に答える
0

モデルではなく、モジュールのコントローラーに if ステートメントを配置します。そこでチェックを行う必要があります。そうすれば、他のビュー呼び出しの周りに if ステートメントを作成できます。アクティブ化されていないユーザーに見せたくない他のビューをロードしないようにします。

于 2013-04-25T09:44:41.050 に答える