2016-05-26 29 views
1

我想包括主页的所有部分。例如,从数据库获取站点标题正在header.php中工作,但是当我在index.php中包含header.php时,我遇到了错误,我传递给具有控制器的视图文件的变量未知。变量不能在php代码中包含文件

控制器:

$this->load->model('mobshop'); 
$data['title']=$this->mobshop->get_title(); 
$this->load->view('header',$data); 

查看文件:

<h1> 
<?php echo $title['site_name']; ?> 
</h1> 
+0

你可以'var_dump($ this-> mobshop-> get_title())'? –

+0

header.php上方的“查看文件”? – DFriend

+0

是index.php上面显示的“Controller”?如果没有,你怎么/你在哪里“包括”index.php? – DFriend

回答

0

假设$this->mobshop->get_title()返回一个字符串,你的观点将仅仅是这一点。

<h1> 
<?php echo $title; ?> 
</h1> 

如果get_title()回报和阵列相当于此例如

$data['title'] = array('site name' => "My Site"); 

那么你可以使用你的问题有语法。

在你的问题,你说

但是当我包括的index.php的header.php ....

导致我问,你使用include语句字面上的意思在,include 'header.php';?如果是这样,您可以通过输出视图“CodeIgniter方式”获得更好的结果。

$this->load->view('header', $data); 
$this->load->view('index'); //which is **not** a great name for a controller IMO 

这种方式$data任何变量也将是可见的index

+0

这将工作,但我不想在提交标题后加载主页,只是我想要显示的信息,例如“您的网站标题已成功更新” – Farzaneh

+0

@Farzaneh,这根本不清楚您显示的代码或问题陈述“变量不能在php codeigniter中包含文件中工作”。请编辑您的问题,以更好地了解您想要完成什么以及发生了什么问题。 – DFriend