首页 > 解决方案 > Laravel 5.7 中的常量抛出已定义的错误

问题描述

我在 Laravel 5.7 中创建了一个项目,并在 config 目录中创建了文件 constants.php。当我尝试运行 php artisan config:cache 时,出现以下错误。“ErrorException:已定义常量 XXX_XXX”

我已将所有常量定义为 define('XXXX_XXXX', 'bla bla'); 所有这些都是我的包所需的标准常量。

我做了以下事情:

  1. 我已经搜索了整个项目,很明显我从未在其他任何地方定义过相同的项目。
  2. 如果我删除该常量,它会在下一个define() 中显示错误。
  3. 如果我从 config 目录中删除该文件,则 artisan 命令将成功执行,并且我可以在 bootstrap/cache 目录中看到配置缓存文件。但是即使我将文件粘贴回配置目录后,我的程序也会由于错误(因为未定义常量)而中止。
  4. 如果我从 bootstrap/cache 目录中删除配置缓存文件,代码将完全正常执行(我没有运行命令 config:cache)。

我非常需要这个常量,同时缓存要运行的配置。我猜不出问题所在。

注:config/contants.php全部内容为define('XXX', 'xxx'); 简单地回显 XYZ;任何需要的地方。标准 php 常量。

标签: phpcachingconstantslaravel-5.7

解决方案


试试这个方法

在下面定义常量值

if (!defined('constant')) define('constant', 'value');

推荐阅读