在codeigniter中包含一个子文件夹

时间:2014-01-03 20:51:08

标签: php file codeigniter path directory

我有一个问题,包括codeigniter中的文件夹/文件,这就是我在视图中构建文件的方式。

-application
  -model
  -controller
  -view
    -auth
      -login.php  //I want to include header.php, sidebar and footer on this file
    -includes
      -header.php
      -sidebar.php
      -footer.php
应用程序/ view / auth / login.php 上的

我有 include('../../ include / header'); 但是没有用,我已经尝试了其他几种方法而且没有工作也因为文件在应用程序文件夹中而无法使用绝对路径。

修改

我的视图文件夹中的示例我有 index.php 文件,我有以下代码

      <?php
       include('includes/header.php');
       include('includes/sidebar.php');
      ?>

       <div id='content'>
           <h3>Title</h3>
           <p>contents contents</p>

       </div>
      <?php include('/includes/footer.php'); ?>

现在在视图文件夹中是另一个名为auth的文件夹,我有一个名为 login.php 的文件,其代码如下

     <?php include(../includes/header.php);?> //this doesn't work
     <?php include(../includes/sidebar.php);?> //this doesn't work

     <div id='form'>
        <form>
        </form>
     </div>

     <?php include(../includes/header);?> //this doesn't work

我的控制器上有

  <?php 
  class Index extents CI_Controller
  {
   public function __construct()
     {
       parent::__construct();
     }

   public function index()
     {
      $this->load->view('index'); //this works and loads all the includes
     }
  }

控制器不工作的另一个例子

  <?php 
  class Login extents CI_Controller
  {
   public function __construct()
     {
       parent::__construct();
     }

   public function index()
     {
      $this->load->view('auth/login'); //this works but doesn't load the includes
                                       //in the login.php file found inside the auth 
                                       //folder
     }
  }

3 个答案:

答案 0 :(得分:1)

查看视图加载器(http://ellislab.com/codeigniter/user-guide/libraries/loader.html)。

大多数CI功能都可以使用inviews,因此您可以使用以下内容:

而不是

include('../../include/header');

使用

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

答案 1 :(得分:0)

这是一个很老的帖子,但对于偶然发现它的人来说很多。

我建议您将include文件夹移动到根文件夹。它不应该位于应用程序文件夹中,而应该位于应用程序文件夹所在的文件夹中。

然后用

替换
<?php include(base_url(include/header.php)); ?>

这应该可以解决问题。

答案 2 :(得分:0)

您可以使用APPPATH。 APPPATH是一个CodeIgniter常量。它包含您的应用程序文件夹的完整路径的值。

<?php include(APPPATH.'views/includes/header.php');
//your code here
include(APPPATH.'views/includes/footer.php'); ?>