【问题标题】:Including a sub folder in codeigniter在 codeigniter 中包含一个子文件夹
【发布时间】:2014-01-03 20:51:07
【问题描述】:

我在 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

application/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
     }
  }

【问题讨论】:

标签: php file codeigniter path directory


【解决方案1】:

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

大多数 CI 函数都可以通过 inviews 使用,因此您可以使用如下内容:

代替

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

使用

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

【讨论】:

  • 谢谢,但我要做的不是加载视图,我只想在文件 login.php 中包含 header.php,它们都在不同的文件夹中。跨度>
  • 你为什么要在你的控制器中包含@user2666633?将您的代码添加到控制器中,或使用模型、或助手或库。如果您尝试包含 INVALID 目录,那么您做错了
  • 可能是我解释得不好,让我试着谢谢,我有一个模板(包括),它由页眉、侧边栏、页脚组成,所以如果我想在我的视图中创建一个页面,我只是包括页眉、侧边栏、页脚,在它们之间我写我的内容,所以当我想显示这个页面时,我只需调用包含包含和内容的文件,我就有了我的页面。但现在我正在从另一个文件夹加载视图,我仍然需要从包含文件夹中包含我的模板。我会尝试编辑我的帖子
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    这是一篇旧帖子,但对于任何偶然发现它的人来说。

    我建议您将包含文件夹移至根文件夹。它不应该在应用程序文件夹中,而是在应用程序文件夹所在的文件夹中。

    然后你替换为

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

    这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 2010-11-20
      • 2015-08-10
      • 2020-09-04
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      相关资源
      最近更新 更多