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

Codeigniter 3 Use of undefined constant VIEWPATH - assumed 'VIEWPATH'

我使用 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 设置,它似乎工作得很好。

我不知道如何克服这个问题。有什么想法吗?

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

主要用于访问view文件夹

APPPATH 用法示例

 1. controller
 2. view
     - myfile.php
     - sub_folder
        1. main.php

如果我们想在main.php里面访问myfile.php,我们使用

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

谢谢@abdulla,但是,我发现了问题。 index.php 文件被绕过,只有一些用户以某种方式转到一个旧的不同名称的文件,该文件基于我们之前所做的 CI2 构建。

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

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

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

对我来说类似的解决方案,我没有对 index.php 进行所有必需的更改。在使用 CI 3 示例中的 index.php 进行更新后(然后添加回我的自定义元素)嘿,很快,它起作用了。