我使用本指南在 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 关注
- 102 浏览
添加回答
举报
0/150
提交
取消