在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默认操作,但它需要插入一些数据。如果未插入此数据,则应保留默认值。
以下是我尝试寻找解决方案的一些资源:
答案 0 :(得分:6)
问题DB::connect
未在_config.php
的该阶段调用。因此,我们无法从数据库中检索项目。
在检索DB::connect
之前,我们可以在_config.php
中致电SiteConfig
。
假设我们的数据库配置设置存储在$databaseConfig
中,以下是获取SiteConfig
的代码:
DB::connect($databaseConfig);
$siteConfig = SiteConfig::current_site_config();
然后我们可以像这样检索SiteConfig
变量:
$siteConfig->Title;