如何检查视图是否存在?

时间:2013-10-31 16:25:41

标签: php codeigniter

在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

但我该如何解决?

修改:错误输入'views'到'view'(我在file_exists()中调用if方法的代码中)更正了它。

1 个答案:

答案 0 :(得分: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

的内容

由于常数被逐步取消,你应该避免它。