如何在 CodeIgniter 中加载页面视图 header、带有 session 数据的边栏?
How to load page views like header, sidebar with session data in 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);
}
所以我的问题是如何将 session 数据如 $data['session'] = $this->session->all_userdata();
传递给 header。
我可以通过在控制器中加载每个视图来传递 session 数据。但是如何在模板文件中呢?
在您的任何视图中,您都应该能够使用会话助手。
echo $this->session->userdata('foo');
就我个人而言,我不会在视图中包含页眉和页脚。我如何实现这一点,是扩展控制器。像这样;
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);
希望对您有所帮助。
您可以使用技巧,例如从控制器传递数据数组并在 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');
?>
我使用以下代码创建了一个名为 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);
}
所以我的问题是如何将 session 数据如 $data['session'] = $this->session->all_userdata();
传递给 header。
我可以通过在控制器中加载每个视图来传递 session 数据。但是如何在模板文件中呢?
在您的任何视图中,您都应该能够使用会话助手。
echo $this->session->userdata('foo');
就我个人而言,我不会在视图中包含页眉和页脚。我如何实现这一点,是扩展控制器。像这样;
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);
希望对您有所帮助。
您可以使用技巧,例如从控制器传递数据数组并在 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');
?>