Php Codeigniter包含文件

Php Codeigniter包含文件,php,codeigniter,Php,Codeigniter,我试图在我的应用程序中包含一个标题。我创建了一个controllerssite,并在其中定义了一个函数header,它将数据变量呈现给views/header.php 然而,当我尝试访问myUrl/site/header时,所有变量都可以正常工作,但当我在site controllerindex中创建另一个函数并在其中包含views/header时,我运行site/index时,我会在header中得到未定义的变量通知 有什么想法吗 类站点扩展CI_控制器{ 函数头() { $data=arra

我试图在我的应用程序中包含一个标题。我创建了一个controllers
site
,并在其中定义了一个函数
header
,它将数据变量呈现给
views/header.php

然而,当我尝试访问
myUrl/site/header
时,所有变量都可以正常工作,但当我在site controller
index
中创建另一个函数并在其中包含
views/header
时,我运行
site/index
时,我会在header中得到未定义的变量通知

有什么想法吗

类站点扩展CI_控制器{
函数头()
{

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

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

函数索引()
{

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

}
}

INDEX.PHP


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

如果您想将Html页面的单独部分(例如页眉、页脚、导航栏等)保留为单独的视图文件,我认为最好采用以下方法

将您希望成为标题的内容保留在文件名header.php(或任何您喜欢的内容)的views文件夹中。假设header.php的内容是

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

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

例如:

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


编写一个新的帮助程序并从那里返回数据,然后使用load->view('includes/header',$data)将数据传递给view

问题是,header视图中有动态变量,它们是在header controller中定义的。这些变量有问题,并给出了未定义的erorI,我认为您应该尝试重构代码。您想要做的不是上述代码中使用的正常行为,而是在
include/header
<?php $this->load->view('header');?>
<h1>Welcome</h1>
<p>Main contents here</p>
<?php $this->load->view('footer');?>
function my_controller_function(){
    $this->load->view('my_view');
}
 public function index()
{
  $this->load->view('include/header');
  $this->load->view('home');
  $this->load->view('include/footer');
}