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

时间:2020-11-01 12:47:40

标签: codeigniter codeigniter-4

我想加载一些以前存储在数据库中的常规设置(例如站点语言,站点名称等),这些设置将在应用程序中的任何地方使用。以前在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 感到困惑,我应该将此代码放在哪个文件中或放在哪个文件中以获得预期的结果。有任何建议请告知我们。

1 个答案:

答案 0 :(得分:0)

经过几次尝试,我找到了解决此问题的方法。

首先需要在 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');