Codeigniter 4:从数据库加载常规设置

Codeigniter 4: Loading general settings from DB

我想加载一些以前存储在数据库中的常规设置(例如网站语言、网站名称等),这些设置将在应用程序的任何地方使用。以前在 Codeigniter 3 中,我通过在 application/config/config.php 文件中添加以下代码来完成此操作。

require_once(BASEPATH . 'database/DB.php');
$db =& DB();
$config['general_settings'] = $db->get('general_settings')->row();
$config['languages'] = $db->get('languages')->result();
$db->close();

但我对 Codeigniter 4 我应该将此代码放在何处或哪个文件中以获得预期结果感到有些困惑。有什么建议请告诉我们。

经过多次尝试,我找到了解决这个问题的方法。

首先需要在App/Config目录下创建自定义配置文件。假设我的自定义配置名称是 MyConfig.php

<?php namespace Config;
    use CodeIgniter\Config\BaseConfig;
    use Config\Database;
    class MyConfig extends BaseConfig
    {
        public function __construct ()
        {
            parent::__construct();
            $db = Database::connect();
                $get_general_settings = $db->query('SELECT * FROM general_settings');
                $this->general_settings = $get_general_settings->getRow();
                $get_languages = $db->query('SELECT * FROM languages');
                $this->languages = $get_languages->getResult();
            $db->close();
        }
    }

现在它可以在任何控制器或任何地方使用。示例:$myconfig = config('MyConfig');