【问题标题】:Codeigniter PHP require_once works but load->view doesn'tCodeigniter PHP require_once 有效,但 load->view 无效
【发布时间】:2013-07-28 01:44:03
【问题描述】:

我面临一个奇怪的问题 1 小时,我在互联网和这个论坛上搜索了它,但找不到我正在寻找的解决方案。我正在使用 codeigniter 框架来开发一个小产品。所以这是我的问题:

我有一个名为 music.php 的控制器,它只是加载模板视图:

/* music.php */
public function index()
{
    $data['main_content'] = 'admin/music/list';
    $this->load->view('admin/template', $data);  
}

admin/template.php的内容如下

<?php $this->load->view('header'); ?>
<?php $this->load->view($main_content); ?>
<?php $this->load->view('footer'); ?>

header.phpfooter.phptemplate.php 位于同一文件夹中。现在,当我尝试访问该文件时,浏览器显示错误"Unable to load the requested file: header.php"。但是,如果我使用require_once("header.php"),它就可以正常工作。谁能解决这个问题

编辑1:我的route.php

$route['default_controller'] = "homepage";
$route['404_override'] = '';
$route['admin'] = 'admin/music';

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    load-&gt;view() 的所有调用都使用相对于application/views 的路径,而不是相对于调用它的文件。 (他们也根本不考虑你的路线)

    如果header.phpfooter.phptemplate.php(您正在加载的主模板)位于同一个文件夹中,您仍需要引用以admin/ 开头的完整路径:

    <?php $this->load->view('admin/header'); ?>
    <?php $this->load->view($main_content); ?>
    <?php $this->load->view('admin/footer'); ?>
    

    【讨论】:

      【解决方案2】:

      以上答案都是对的。但此答案适用于使用 codeigniter 4 的用户。您需要执行以下操作:

      <?php echo view('admin/header'); ?>
      <?php echo view($maincontent); ?>
      <?php echo view('admin/footer'); ?>
      

      【讨论】:

        【解决方案3】:

        从上面的代码中,您的application/view/admin/ 文件夹中似乎有header.php and footer.php 文件。因此使用:

        <?php $this->load->view('admin/header'); ?>
        <?php $this->load->view($main_content); ?>
        <?php $this->load->view('admin/footer'); ?>
        

        【讨论】:

          【解决方案4】:

          我有同样的问题。我认为它与缺少的构造函数有关。至少,这为我解决了问题。将此添加为控制器中的第一个函数:

          public function __construct()
          {
              parent::__construct();
          }
          

          【讨论】:

            猜你喜欢
            • 2017-07-12
            • 1970-01-01
            • 2023-03-31
            • 2011-07-04
            • 1970-01-01
            • 2021-02-21
            • 2013-12-23
            • 2023-04-02
            • 2019-11-07
            相关资源
            最近更新 更多