In SilverStripe 3.4.1 I want to control _config.php
file values through the Admin settings. I want to set some variables in Admin > Settings > MyTab and then access these variables in _config.php
.
Is there a way to access SiteConfig
variables in the _config.php
file?
I tried to use several different ways to get the config data:
Config::inst()
print_r
/ var_dump
gives all the values as an array Config::inst()->get($this->class, 'PropertyName')
or $this->config()-> get('PropertyName')
SiteConfig::current_site_config()
or any other similar variations based on the previous two
The reason I want to do this is I have a plugin that replaces some SilverStripe default action but it requires some data to be inserted. If this data is not inserted it should stay as default.
Here are some resources I have read through to try to find a solution:
The issue is DB::connect
is not called at that stage in _config.php
. Therefore we cannot retrieve items from the database.
What we can do is call DB::connect
in our _config.php
before we retrieve our SiteConfig
.
Assuming our database config settings are stored in $databaseConfig
, here is the code to fetch our SiteConfig
:
DB::connect($databaseConfig);
$siteConfig = SiteConfig::current_site_config();
Then we can retrieve SiteConfig
variables like so:
$siteConfig->Title;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.