codeigniter: передать данные представлению, включенному в представление - PullRequest
16 голосов
/ 01 декабря 2010

У меня есть контроллер и два вида из одной функции, как показано ниже

$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?

Спасибо, ребята

Ответы [ 5 ]

25 голосов
/ 01 декабря 2010

Внутри вашего контроллера, имейте

$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».

5 голосов
/ 05 апреля 2012

решение Кастиса работает

однако, если вы хотите сделать это на более мелком уровне, вы можете использовать:

//in your controller
$data['whatever'] = 'someValue';

.

//In your view
echo $whatever //outputs 'someValue';

//pass $whatever on
$this->load->view('some/view', Array('whatever' => $whatever));
1 голос
/ 28 сентября 2017

Также попробуйте это сделать, если вы хотите, чтобы все данные CodeIgniter отображались в подпредставлении:

echo $this->view('subview', get_defined_vars()['_ci_data']['_ci_vars'])
1 голос
/ 16 мая 2016

Я видел в своих файлах представления, передаю ли я данные из контроллера для просмотра и из этого представления во вложенные файлы представления. нет необходимости переводить

$ данных

для вашего вложенного просмотра он уже доступен. вы можете напрямую получить к нему доступ, в своем внутреннем представлении.

1 голос
/ 01 декабря 2010

Это сообщение на форуме Codeigniter должно помочь вам;)

Вы можете сделать ваш $ data (пример) глобальным в контроллере, или передать как @castis, упомянутый в вашем представлении (переменные только в вашем представлении)

Подробнее здесь: http://codeigniter.com/forums/viewthread/88335/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...