Codeigniter 4 如何从 BaseController 加载配置文件以在所有页面上使用它

Codeigniter 4 how to load a configuration file from BaseController to use it on all pages

在我的 BaseController 中,我尝试以各种方式加载我的配置文件,但我找不到值

在我尝试的 initController 函数中:

$this->myconfig = new \Config\MyConfig;
or
$myconfig = config('\Config\MyConfig');
or
$myconfig = config('MyConfig');
or
$this->myconfig = config('MyConfig');

None 这些作品

这是我的 MyConfig 测试配置文件,位于 Config 文件夹中

namespace Config;

use CodeIgniter\Config\BaseConfig;

class MyConfig extends BaseConfig
{
    public $ada_default_lang = 'en';
    public $ada_site_name = 'Site name';
}

您根本不需要扩展您的 BaseController。

只需在 upgrade docs 之后创建您的 MyConfig.php 文件:

In CI4, the configurations are now stored in classes which extend CodeIgniter\Config\BaseConfig.

你做对的是:

<?php
    namespace Config;
    
    use CodeIgniter\Config\BaseConfig;
    
    class MyConfig extends BaseConfig
    {
        public $ada_default_lang = 'en';
        public $ada_site_name = 'Site name';
    }

现在要在任何控制器中访问您的 $ada_default_lang,您只需在控制器方法中调用它,例如:

$lang= config('MyConfig')->ada_default_lang );
die($lang); // would halt the program and output 'en'

对应于 CI3.x 方式,例如:$this->config->item('ada_default_lang ');