在_config.php中获取SiteConfig变量

时间:2016-08-31 16:46:56

标签: php silverstripe

在SilverStripe 3.4.1中,我想通过管理员设置控制_config.php个文件值。我想在 Admin >中设置一些变量设置> 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默认操作,但它需要插入一些数据。如果未插入此数据,则应保留默认值。

以下是我尝试寻找解决方案的一些资源:

1 个答案:

答案 0 :(得分:6)

问题DB::connect未在_config.php的该阶段调用。因此,我们无法从数据库中检索项目。

在检索DB::connect之前,我们可以在_config.php中致电SiteConfig

假设我们的数据库配置设置存储在$databaseConfig中,以下是获取SiteConfig的代码:

DB::connect($databaseConfig);
$siteConfig = SiteConfig::current_site_config();

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

$siteConfig->Title;