在_config.php中获取SiteConfig变量

loh*_*ohe 6 php silverstripe

在SilverStripe 3.4.1中,我想_config.php通过管理员设置来控制文件值.我想在管理 > 设置 > MyTab中设置一些变量,然后在中访问这些变量_config.php.

有没有办法访问文件中的SiteConfig变量_config.php

我尝试使用几种不同的方法来获取配置数据:

  • Config::inst()
    • print_r/ var_dump将所有值作为数组
  • Config::inst()->get($this->class, 'PropertyName') 要么 $this->config()-> get('PropertyName')
    • 返回空
  • SiteConfig::current_site_config() 或基于前两个的任何其他类似变化
    • 内部服务器错误

我想这样做的原因是我有一个插件替换了一些SilverStripe默认操作,但它需要插入一些数据.如果未插入此数据,则应保留默认值.

以下是我读过的一些资源,试图找到解决方案:

3dg*_*goo 6

问题是DB::connect在那个阶段没有被调用_config.php.因此,我们无法从数据库中检索项目.

我们所能做的就是调用DB::connect我们_config.php,我们获得我们面前SiteConfig.

假设存储了我们的数据库配置设置$databaseConfig,这里是获取我们的代码SiteConfig:

DB::connect($databaseConfig);
$siteConfig = SiteConfig::current_site_config();
Run Code Online (Sandbox Code Playgroud)

然后我们可以SiteConfig像这样检索变量:

$siteConfig->Title;
Run Code Online (Sandbox Code Playgroud)