2012-06-06 140 views
1

我想包括头在我的application.I创建了一个控制器site,并在其中定义的函数header,这使得数据变量views/header.php笨包括文件

然而,当我尝试访问myUrl/site/header所有varialble工作正常,但是当我在现场控制器index中创建另一个功能,并在其中包括views/header,并且我运行site/index,那么我会在标头中获得未定义的变量通知。

任何想法?

class site extends CI_Controller { function header() {

$data =array('name'=>'foo');

$this->load->view('includes/header',$data); }

function index() {

$this->load->view('includes/index'); } }

INDEX.PHP

$this->load->view('includes/header');

+0

请张贴您的代码。 –

回答

0

得到它解决了!!!!

写了一个新的帮助器,并从那里返回数据,然后使用load-> view('includes/header',$ data)传递数据以查看。

2

如果你想保持独立的细分中的HTML页面(如页眉,页脚,导航栏等),以单独的视图文件,我觉得这是更好地做到这一点通过以下方式

将你想要成为标题的内容保存到文件名header.php(或其他任何你喜欢的内容)以查看文件夹。假设,在header.php中的内容是

<html> 
    <head> 
     <title>This is title</title> 
    </head> 
    <body> 

名为footer.php另一个文件包含在查看文件夹下面

</body> 
</html> 

另一个文件my_view.php放置该页面的内容。示例内容是

<?php $this->load->view('header');?> 
<h1>Welcome</h1> 
<p>Main contents here</p> 
<?php $this->load->view('footer');?> 

现在,如果您加载从您的控制器功能的my_view,整个HTML页面将被渲染。

function my_controller_function(){ 
    $this->load->view('my_view'); 
} 
+0

问题是,在标题视图中有动态变量,它们在标题控制器中定义。这些变量有问题,并给出未定义的错误 – Shaun

+0

我认为你应该尝试重构代码。你想要做的不是正常的行为 – Nayan

0

这不是正确的做法。基本上我会像Rafiqunnabi那样做,除非我不在视图中加载视图。

对于e.g:

public function index() 
{ 
    $this->load->view('include/header'); 
    $this->load->view('home'); 
    $this->load->view('include/footer'); 
} 
+0

我使用上面的代码,但它在include/header中使用的变量有问题 – Shaun