我正在使用codeigniter我在 [HOME] 控制器中使用了 BuildTemplate函数来验证用户身份。我有另一个名为 [AJAXCONT] 的控制器,它有一个名为 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);
}
答案 0 :(得分:1)
您应该将所有功能移动到模型中,控制器应仅从模型中检索数据并通过加载视图输出。 CodeIgniter的控制器只能通过URI / Routing调用,不能从其他任何地方调用控制器或控制器方法。
创建一个模型以与用户合作,第二个模型可以执行您的搜索操作。然后,从控制器调用您希望的顺序。