为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 silverstripe 中设置 SiteConfig 中的属性?

如何在 silverstripe 中设置 SiteConfig 中的属性?

PHP
aluckdog 2023-07-21 15:59:27
我使用本指南在 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 方法。


查看完整回答
反对 回复 2023-07-21
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信