1

多くのメソッドがあるコントローラーがあり、すべてのページにヘッダーをロードする必要があります。現在$data["query1"] = $this->mainmenumodel->getmainmenulist();、ヘッダー データをロードするすべてのメソッドで使用しています。

各クラスに 30 を超えるメソッドがあるため、すべてのメソッドにこれを記述するのは少し難しい$data["query1"] = $this->mainmenumodel->getmainmenulist();です。

メソッド全体で使用できるように、クラスでできることはありますか。

controller.php

                       --------------------------------
                       ---------------------------------
    class mainmenusetups extends MY_Controller {
       var $data = array();
       public function __construct() { 
        parent:: __construct();
        $this->load->helper('url'); 
        $this->load->model('mainmenumodel'); 
        $this->load->library('pagination'); 
        parent::MY_Controller(); 

      if ((int) $mainmenu_id > 0) 
       {
        $query = $this->mainmenumodel->get($mainmenu_id); 
          $this->data->mainmenumodel->getmainmenulist();//how to specify it only once to be use for enitere  class
        $this->load->view('admin/setups/mainmenu/index', $data);
       } 

      else if (!($this->input->post('mainmenu_id'))) 

     {
        $data["query"] = $this->mainmenumodel->fetch_mainmenu_data($config["per_page"], $page);
        $data["links"] = $this->pagination->create_links();
         $this->data->mainmenumodel->getmainmenulist();//how to specify it only once to be use for enitere  class
        $this->load->view('admin/setups/mainmenu/index', $data);
       }
     //--------like this ,i have many  methods and condition in every page-----------       }
4

1 に答える 1

0

あなたは少し混乱していると思います。

MY_Controller からすべてのコントローラーを継承します。MY_Controller で、ヘッダーを次のような「グローバル」変数に設定します。

$this->data['header'] = $this->set_header();

function set_header()
{
    //all my good logic, including:
    return $this->load->view('my_header', '', true);  // true will pass to a variable
}

これで、継承されたすべてのコントローラーで、ビューをロードするたびに、常にデータに $this->data を使用します。$this->data['header'] が含まれます & テンプレート/ページの上部に印刷できます

于 2013-03-28T08:54:23.343 に答える