Как загрузить представление в другое представление codeigniter 2.1?
Ive работает с CI, и я видел на веб-сайте CI вы можете загрузить представление как переменную часть данных, которые вы отправляете в "основное" представление, поэтому, согласно сайту (что говорит много чего, и многие не такие, как они говорят... ej pagination и другие), я сделал что-то вроде этого
$data['menu'] = $this->load->view('menu');
$this->load->view ('home',data);
результатом этого является то, что я получаю отголосок меню в верхней части сайта (до начала моего тела и всего), и где должно быть его ничто, например, если бы они были напечатаны перед всем... Я понятия не имею честно из этой проблемы, у кого-то была такая же проблема раньше?
Ответы
Ответ 1
Два способа сделать это:
-
Загрузите его заранее (как вы делаете) и перейдите к другому представлению
<?php
// the "TRUE" argument tells it to return the content, rather than display it immediately
$data['menu'] = $this->load->view('menu', NULL, TRUE);
$this->load->view ('home', $data);
-
Загрузите представление "изнутри":
<?php
// put this in the controller
$this->load->view('home');
// put this in /application/views/home.php
$this->view('menu');
echo 'Other home content';
Ответ 2
Создайте вспомогательную функцию
function loadView($view,$data = null){
$CI = get_instance();
return $CI->load->view($view,$data);
}
Загрузите помощника в контроллер, затем используйте функцию в вашем представлении, чтобы загрузить другую.
<?php
...
echo loadView('secondView',$data); // $data array
...
?>