2

ページング用に2つのコントローラー、モデル用に1つのコントローラー、データベース用に1つのモデルを作成しました。2つのコントローラーが他のコントローラーに拡張されます。このような

class MY_Data extends CI_Controller{
     public $layout;
     public $xe_member;
     public $member_srl;
     public $is_logged_in = FALSE;
     public $is_registerd = false;
     public $director = array();
     public $fighters = array();
     public $logged;

    function __construct(){
         parent::__construct();
         $this->load->model('member_login');
         $this->load->model('db_log');
         $this->layout = 'include/template';
    }
    function load_data(){
         $this->xe_member = $this->member_login->member_check();
         $this->member_srl = $this->xe_member['member_srl'];
         $this->is_logged_in = $this->xe_member['is_logged'];
         $this->is_registerd = $this->member_login->register_check
                              ($this->member_srl);
         if($this->is_registerd){
            $this->director = $this->db->where('member_srl', $this->member_srl)->
            limit(1)->get('fc_directors')->row();
            $this->fighters = $this->db->where('member_srl', $this->member_srl)->
            get('fc_fighters')->result();
         }
     }
}

ログインする

class Login extends MY_Data {
public function __construct()
{
    parent::__construct();
    $this->load->model('member_login');
}
public function index()
{
    if (isset($_COOKIE['PHPSESSID'])) {
        $data['PHPSESSID'] = $_COOKIE['PHPSESSID'];
    }else {
        $this->load->view('include/template', 'login_error');
        die();
    }
    $this->load_data();

    if($this->is_logged_in)
    {

        if ($this->is_registerd) {

            $data['log'] = $this->db_log->read_all_log();
            $data['main_contents'] = 'main/main';
            $this->load->view('include/template', $data);
        } else {

            redirect('registration');
        }
    } else {
        $data['main_contents'] = 'login_error';
        $this->load->view('include/template', $data);
    }

}

とメイン

class Main extends MY_Data {
function __construct() {
    parent::__construct();
}
function index(){
    if(!$this->logged){
        $data['main_contents'] = 'login/login_button';
        $this->load->view($this->layout,$data);
    }else {
        $data['main_contents'] = 'main/main';
        $this->load->view($this->layout,$data);             
    }
}

私は完璧なコードではないことを知っていますが...ここでやりたいこと:
最初にlogin to db_dataを呼び出すと、オブジェクト内のdbストアがプルされ、メインのテイクオブジェクトが表示されます。しかし、mainを使用すると、マザーコントローラーから常にnullが発生します。

コントローラーオブジェクトを他のコントローラーに使用するだけです。

これどうやってするの?

4

1 に答える 1

0

Main の関数インデックスの最初の行は

parent::index(); 

クラス Login にあるインデックス関数を拡張したいと思います。

親クラスのインデックスは実行されず、次の行は呼び出されません。

$this->load_data()  

を含む

$this->member_login->member_check();

それはあなたの問題を解決しますか?

于 2013-01-30T15:17:43.907 に答える