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