2012-08-27 2 views
0

Я использую codeigniter У меня есть это Функция BuildTemplate в моем [HOME] контроллер, который аутентифицирует пользователя. У меня есть другой контроллер под названием [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); 

} 

ответ

1

Вы должны перенести все свои функции на модели, контроллеры должны извлекать данные только из моделей и выводить их, загружая виды. Контроллеры CodeIgniter вызываются только URI/Routing, вы не можете вызывать методы контроллера или контроллеров из любого другого места.

Создайте модель для работы с пользователями, вторую модель, которая делает то, что делает ваш поиск. Затем от контроллера вызовите их в том порядке, в котором вы хотите.

Смежные вопросы