将多个控制器组合成一个视图


combining multiple controllers into one view

我使用的是codeigniter,我的[HOME]控制器中有一个BuildTemplate函数,用于验证用户。我有另一个名为[AAJACONT]的控制器,它有一个函数,名为search(),返回数据以填充视图中的搜索表。我想在生成$top_bar_data视图后立即从它的搜索函数中检索该控制器的数据。我该如何对此进行编码。我的方法正确吗?

private function BuildTemplate($view, $data) {
    if($this->session->userdata('logged_in_faculty'))
   {
     $session_data = $this->session->userdata('logged_in_faculty');
     $top_bar_data['Firstname'] = $session_data['Firstname'];
     $top_bar_data['Lastname'] = $session_data['Lastname'];
     $master_data['f_top_bar'] = $this->load->view('f_top_bar', $top_bar_data, true);
          //I WANT TO RETURN ALL DATA IN THE AjaxCont controller returned by the search function HERE //
        //$search_data = (all data from my search function in AJAXCONT controller )
    // $master_data['search_results'] = $this->load->view('search_results',    $search_data, true);

   }
else
   {
     //If no session, redirect to login page
     redirect('login', 'refresh');
   }
   return $this->load->view('master', $master_data, true);
}

您应该将所有函数移动到模型中,控制器应该只从模型中检索数据并通过加载视图输出。CodeIgniter的控制器仅由URI/Routing调用,不能从其他任何地方调用控制器或控制器方法。

创建一个与用户合作的模型,第二个模型做你搜索的事情。然后,从控制器按您希望的顺序调用这些。