Подтвердить что ты не робот

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?

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

4b9b3361

Ответ 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'])