我们可以在 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)的主要内容,如果未能解决你的问题,请参考以下文章