我使用本指南在 silverstripe 中創建了 CustomSiteConfig -> https://docs.silverstripe.org/en/4/developer_guides/configuration/siteconfig/#siteconfig它是這樣的:<?phpnamespace Poptin\Silverstripe;use SilverStripe\Forms\FieldList;use SilverStripe\Forms\TextField;use SilverStripe\ORM\DataExtension;class PoptinSiteConfig extends DataExtension { private static $db = [ 'PoptinConfig' => 'Text' ]; public function updateCMSFields(FieldList $fields) { $fields->addFieldToTab("Root.Main", new TextField("PoptinConfig", "Poptin Config") ); }}我可以通過以下方式檢索信息$config = SiteConfig::current_site_config();var_dump($config->PoptinConfig);確實有效,但是如何恢復呢?我已經嘗試過$config->__set('PoptinConfig', 'foo'),$config->setField('PoptinConfig', 'foo');但沒有一個有效。沒有錯誤,但字段沒有改變。
1 回答

catspeake
TA貢獻1111條經驗 獲得超0個贊
$cfg = SiteConfig::current_site_config();
$cfg->PoptinConfig = "Something";
$cfg->write();
應該可以解決這個問題,就像任何擴展 DataObject 的類一樣。唯一的區別是
$cfg = SiteConfig::current_site_config();
因為它是一個 SiteConfig 方法。
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消