2016-09-25 52 views
0

我的主布局位于下方,工作正常。我只是希望更多地传递一个默认变量与这个主布局,我可以在每个页面中获得。如何在Codeiginiter中通过主布局传递变量

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

我如何得到这个。

+0

已提供解决方案。如果您在开发中遇到任何障碍,请与我分享。 @Mir Abzal Ali –

回答

0

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

方法1:

如果使用的一般方法,将数据加载到可以使用此方法的视图。

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

你passs到它的array()

方法帮助这将加载profile_view页面与$data沿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; 
}