如何在CodeIgniter中加载带有会话数据的页眉,侧边栏等页面视图?

时间:2015-01-16 12:48:08

标签: php codeigniter session views

我创建了一个名为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();传递给标头。 我可以通过加载控制器中的每个视图来传递会话数据。但是如何在模板文件中。?

3 个答案:

答案 0 :(得分:1)

在任何视图中,您都应该能够使用会话助手。

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

答案 1 :(得分:0)

就个人而言,我不会在视图中包含页眉和页脚。我如何实现这一点,就是扩展Controller。像这样;

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);

我希望这会有所帮助。

答案 2 :(得分:0)

您可以使用技巧,例如从控制器传递数据数组,并在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');    
 ?>