2013-03-27 47 views
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-----------  } 
+0

我很困惑......但是'$ this-> data-> mainmenumodel-> getmainmenulist();'顯然不會工作,$ data是一個數組。你可能想要將$數據傳遞給該方法嗎? '這 - $> getmainmenulist($數據);'? – ficuscr 2013-03-27 17:51:48

+0

@ficuscr我更新了我的問題。我想在這個類的所有方法中只通過指定一次來傳遞'$ this-> data-> mainmenumodel-> getmainmenulist();'。目前我正在每一頁中指定它。請大家幫忙...... – 2013-03-27 17:57:41

+0

大多數MVC框架都有一個'視圖助手'的概念來促進這一點。我會推遲到熟悉codeignitor的人。看到一些其他相關的好問題:http://stackoverflow.com/questions/4650957/good-logic-of-view-helper-for-codeigniter – ficuscr 2013-03-27 18:01:01

回答

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 ['header']將被包括在內&你可以在你的模板/頁面頂部打印出來

相關問題