Codeigniter 3使用未定义的常量VIEWPATH - 假设'VIEWPATH'

时间:2015-10-10 14:09:15

标签: php codeigniter-3

我使用Codeigniter 3构建了一个系统,出于某种原因,只有一些用户正在使用白屏。我正在尝试调试它并开启日志记录。

我的日志中出现以下错误:

Severity: Notice --> Use of undefined constant VIEWPATH - assumed 'VIEWPATH' /my/server/path/to/system/core/Common.php 196
Severity: Notice --> Use of undefined constant VIEWPATH - assumed 'VIEWPATH' /my/server/path/to/system/core/Exceptions.php 162
Severity: Warning --> include(): Failed opening 'VIEWPATHerrors/html/error_general.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') /my/server/path/to/system/core/Exceptions.php 182

因此,似乎核心php文件无法从索引文件中看到已定义的变量。但奇怪的是,如果我在Common.php的顶部定义VIEWPATH,则表示已经设置了VIEWPATH。我在控制器中添加了一个log_message来输出我的VIEWPATH设置,它似乎工作正常。

我无法弄清楚如何克服这个问题。有什么想法吗?

5 个答案:

答案 0 :(得分:10)

谢谢@abdulla,然而,我发现了这个问题。 index.php文件仅被一些用户绕过,这些用户以某种方式转到一个基于我们之前做过的CI2构建的旧的不同命名文件。

如果有其他人遇到此问题,请检查以确保您没有任何其他"索引"您的root用户可能访问的文件。

答案 1 :(得分:6)

这通常是由于在升级CodeIgniter时未从旧版本更新index.php。简单的解决方法是从您要升级的版本下载index.php文件,并用它替换旧的index.php。

答案 2 :(得分:0)

VIEWPATH应更改为APPPATH。因此它将加载您的根文档文件夹

主要用于访问view文件夹

APPPATH用法

的示例
 1. controller
 2. view
     - myfile.php
     - sub_folder
        1. main.php

如果我们想要访问myfile.php内的main.php,我们会使用

include(APPPATH.'views/myfile.php');

答案 3 :(得分:0)

我也遇到了这个问题。当更改codeigniter旧版本时,不要忘记使用新版本的index.php文件。而已。它无法找到PATH目录。因为在新版本中,路径在codeigniter处发生了变化。

答案 4 :(得分:0)

对我来说,类似的解决方案是,我没有对index.php进行所有必需的更改。从CI 3的示例中使用index.php更新(然后重新添加到我的自定义元素中)之后,嘿,它可以正常工作了。