Как загрузить представления страниц, такие как заголовок, боковая панель с данными сеанса в CodeIgniter?

Я создал представление с именем template.php со следующим кодом.

<?php
$this->load->view('header');
$this->load->view($middle);
$this->load->view('footer');
?>

и в контроллере я использую как

public function index()
{
$data['middle'] = 'home';
$this->load->view('template',$data);
}

Итак, мой вопрос, как передать данные сеанса, такие как $data['session'] = $this->session->all_userdata(); в шапку.
Я могу передать данные сеанса, загрузив каждое представление в контроллер. а как в шаблонном файле.?

1

Решение

Лично я бы не включил верхний и нижний колонтитулы из представления. Как мне этого добиться, это расширить контроллер. Как это;

class MY_Controller extends CI_Controller {

public function __construct()
{
parent::__construct();
}

public function show_view($view, $data = array())
{
$this->load->view('header', $data);
$this->load->view($view, $data);
$this->load->view('footer', $data);
}

}

Теперь вы можете загрузить любое представление, и мы передаем массив $ data как в верхний, так и в нижний колонтитулы.

$this->show_view('homepage', $data);

Надеюсь, это поможет.

0

Другие решения

В любом из ваших представлений вы сможете использовать сессионный помощник.

echo $this->session->userdata('foo');
1

Вы можете использовать такой трюк, как передача массива данных из контроллера и повторная передача внутреннего массива в представлении template.php.

public function index()
{
$data['middle'] = 'home';
$this->load->view('template',array('data' => $data)); //trick to get whole data array in your template view.
}

тогда в вашем представлении шаблона

<?php
$this->load->view('header',$data);
$this->load->view($middle);
$this->load->view('footer');
?>
0
По вопросам рекламы [email protected]