0

私は philsturgeon のライブラリを使用して My_Controller でこのリマップ メソッドを使用しています

<?php
class MY_Controller extends MX_Controller 
{
    protected $data;
    protected $view;

    function __construct()
    {
        parent::__construct();
    }

    public function _remap($method, $parameters)
    {
        if($this->view === TRUE OR $this->view === '')
        {
            $this->template->build('default');
        }else if(strlen($this->view) > 0){
            $this->template->build($this->view);
        }else{
            $checkpoint =   $this->session->flashdata('exit');
            if($checkpoint){
                exit();
            }else{
                $this->session->set_flashdata('exit',TRUE);
            }
            $this->redirect = base_url()  . $this->redirect;
            redirect($this->redirect);
        }   

    }
}   

ここで、子コントローラーでこの状況を処理するために何をすべきかを知りたい

<?php
class Home extends My_Controller {

    public  $redirect = '/admin/dashboard';
    public  $view   =   FALSE;

    function __construct()
    {
        parent::__construct();
    }

    function dashboard($days = '')
    {
        if (!$this->session->userdata('session_admin'))
        {
            $this->redirect =   '/admin/login';
        }else{
            //display dashboard 
        }
    }

    function login()
    {   
        if ($this->session->userdata('session_user')){
            $this->redirect;
        }else{
            $this->view =   'login';    //Load login view through remap method with template library
        }
    }
}

ご覧のとおり、ループに入り、My_Controller の私の条件で終了します。私はこれを作成しましたが、ここでリダイレクトを処理する方法を知りたいです。最適化されたソリューションは何ですか。助言がありますか?

4

1 に答える 1

0

フラッシュ データを使用して問題を解決しました。フラッシュ データを設定しています。ループに入ると、存在する場合はフラッシュメッセージをチェックし、そうでない場合はフラッシュデータを設定します。

于 2013-01-06T17:20:28.833 に答える