如何加载标题内容以便在所有页面中可用

时间:2013-03-27 17:38:45

标签: php codeigniter

我有一个控制器,有很多方法,我必须在所有页面加载我的标题。 目前我在所有方法中使用$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-----------       }

1 个答案:

答案 0 :(得分: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->数据作为数据;将包含$ this-> data ['header']&你可以在你的模板/页面顶部打印出来