我们可以在 config/constants.php 文件中触发数据库查询以使常量动态化吗? (PHP Codeignitor)

Posted

技术标签:

【中文标题】我们可以在 config/constants.php 文件中触发数据库查询以使常量动态化吗? (PHP Codeignitor)【英文标题】:Can we fire a database query in config/constants.php file to make constants dynamic? (Php Codeignitor) 【发布时间】:2021-12-22 01:35:15 【问题描述】:

我试图把它放在 config/config.php 的底部

require_once( BASEPATH .'database/DB.php');
$db =& DB();

$query = $db->get('constants');
$result = $query->result();

foreach( $result as $row)

    $config[$row->title] = $row->value;

但它抛出了这个错误: 遇到未捕获的异常

类型:错误 消息:找不到类“CI_Controller” 文件名:E:\xampp74\htdocs\jrvs\system\core\CodeIgniter.php 行号:369

请为此建议我一些解决方案。如果这是不可能的,那么我们还能做些什么来使常量动态化?

【问题讨论】:

【参考方案1】:

constants.php 是在 Codeigniter.php 中加载的第一个文件,因此您不能在此文件中使用 codeigniter 的实例,因为如果没有还没有加载,当然你不能依赖钩子,因为它是在加载这个文件并且定义了常量之后加载的!

您最好的选择是在此文件顶部或 index.php 中手动连接到您的数据库并查询您需要的内容,然后使用定义中的值。

【讨论】:

在该文件顶部似乎无法连接数据库。你能详细说明一下怎么做吗? @NidhiVala 我的意思是自定义数据库连接(用自定义脚本自己做),我说你不能在这个文件中使用任何 codeigniter 功能。

以上是关于我们可以在 config/constants.php 文件中触发数据库查询以使常量动态化吗? (PHP Codeignitor)的主要内容,如果未能解决你的问题,请参考以下文章

如果我们不提供广告,我们可以使用 IDFA

我们可以使用 Visual Studio 在 VSTS 中检查点吗?

我们可以在 C++ 中有一个静态类吗?

我们可以选择在 sklearn 中使用啥决策树算法吗?

我们可以在后台播放音频吗

消息队列:我们可以在消息进入队列时触发事件吗?