2

在 CodeIgniter 中,我试图在从控制器加载文件存在或不存在的视图之前检查,我试过像 -

public function foo($file = "")
{
    if (file_exists(APPPATH."views/log/{$file}.".EXT))
    {
        $this->load->view('log/'.$file);
    }
    else
        show_404();
}

但是文件在那里存在,然后file_exists()方法也在返回false,我也使用它检查过var_dump()。我不明白这里有什么问题,我猜测有一些与映射相关的问题,因为目录结构就像 -

application
   |--controllers
   |  |--ctrl.php   //Controller file where I am checking
   |--views
      |--log
         |-- .. //Checking files for here

但我该如何解决?

编辑:只是将“视图”错误地输入到“视图”(在我调用file_exists()方法的代码中if)纠正了它。

4

1 回答 1

6

Codeigniter 中的EXT常数等于.php并定义在index.php

// The PHP file extension
// this global constant is deprecated.
define('EXT', '.php');

您正在添加一个额外的点:

APPPATH."views/log/{$file}.".EXT
//                        ^

这会导致类似views/log/myfile..php

由于常量正在逐步淘汰,因此您应该避免使用它。

于 2013-10-31T16:50:53.620 回答