如何在Codeiginiter中使用主布局传递变量

时间:2016-09-25 16:20:10

标签: codeigniter

我的主人布局如下,工作正常。我只是想通过这个主布局传递一个默认变量,我可以在每个页面中获得更多。

class MY_Controller extends CI_Controller {

public $layout;

function __construct() {
    parent::__construct();
    $this->layout='layout/master';
}

}

我需要传递如下变量:

function __construct() {
    parent::__construct();
    $data['msg'] = $this->session->flashdata('usermsg');
    $this->layout=('layout/master',$data);
}

我如何得到这个。

1 个答案:

答案 0 :(得分:0)

如果您在$this->layout的帮助下从控制器动态加载数据,您可以发送这样的数据。

方法1:

如果您使用常规方法将数据加载到视图,则可以使用此方法。

$this->load->view('profile_view', $data);

这将在$data

的帮助下加载profile_view页面和array()

方法2:

如果您已经创建了一个主布局,并且您正在将数据从控制器传递到主布局,则需要执行此操作。

<?php
public function master_layout () {
$this->template['header'] = $this->load->view('include/header', $this->Front_End_data, true);
$this->template['navigation'] = $this->load->view('include/navigation', $this->Front_End_data, true);
$this->template['center'] = $this->load->view($this->middle, $this->Front_End_data, true);
$this->template['footer'] = $this->load->view('include/footer', $this->Front_End_data, true);
$this->load->view('include/index', $this->template);
?>

在此代码中,将根据您在主布局中调用的页面动态加载以下行。

$this->template['center'] = $this->load->view($this->middle, $this->Front_End_data, true);

为了将数据传递给此center布局,您可以使用这样的功能。

$data['msg'] = 'Success';
$this->template['center'] = $this->load->view ($this->middle = 'pages/view_oage',$data, true);
$this->master_layout();

在页面中,您可以使用foreach循环获取要打印的数据,如下所示。

foreach($msg as $value)
{
echo $value;
}