У меня есть контроллер и в том числе два вида из одной функции, как показано ниже
$this->load->view('includes/header',$data); $this->load->view('view_destinations',$data);
Файл view_destinations.php
содержащий файл меню php, следующим образом
<? $this->load->view('includes/top_menu'); ?>
Мой вопрос в том, как я могу передавать данные, которые извлекаются из контроллера, к этому относится top_menu.php
?
Спасибо вам, ребята
Внутри вашего контроллера,
$data['nestedView']['otherData'] = 'testing';
до вашего просмотра.
Когда вы звоните
$this->load->view('view_destinations',$data);
файл view_destinations
будет иметь
$nestedView['otherData'];
Что вы можете в этот момент, перейдите в файл вложенных представлений.
<? $this->load->view('includes/top_menu', $nestedView); ?>
И внутри вашего файла top_menu у вас должно быть $otherData
содержащее «тестирование».
Решение кастиса
однако, если вы хотите сделать это на более тонком уровне, вы можете использовать:
//in your controller $data['whatever'] = 'someValue';
,
//In your view echo $whatever //outputs 'someValue'; //pass $whatever on $this->load->view('some/view', Array('whatever' => $whatever));
Это сообщение форума Codeigniter должно помочь вам;)
Вы можете либо сделать свой $ data (пример) глобальным в контроллере, либо пройти так же, как @castis, упомянутый в вашем представлении (переменные только в вашем представлении)
Подробнее здесь: http://codeigniter.com/forums/viewthread/88335/
Я видел в своих файлах просмотра, если я передаю данные из контроллера для просмотра и из этого представления, чтобы включить вложенные файлы представлений. нет необходимости переводить
$ данных
для вашего вложенного представления он уже доступен. вы можете напрямую обращаться к нему, в пределах вашего внутреннего вида.
Также попробуйте это, если вы хотите, чтобы каждый просмотр данных CodeIgniter в подвью:
echo $this->view('subview', get_defined_vars()['_ci_data']['_ci_vars'])