php - SilverStripe SiteConfig 标题字段操作

标签 php silverstripe

我已经设置了一个 SiteConfig 扩展(在 yml 中声明,经过测试和确认),通过它我尝试更改 Title 字段(Site 的字段) title) 到只读字段。

我知道在父类 SiteConfig 中,Title 字段存储在变量中。 SiteConfig 第 85 行:$titleField = new TextField("Title", _t('SiteConfig.SITETITLE', "网站标题"))

所以在我的扩展SiteConfigTweaks extends DataExtensions中我尝试过:

 public function updateCMSFields(FieldList $fields) {
     $titleField->performReadonlyTransformation();
 }

但这并不能解决问题。我在这里缺少什么?

最佳答案

我建议您执行以下操作:

public function updateCMSFields(FieldList $fields)
{
    if ($titleField = $fields->dataFieldByName('Title')) {
        $fields->replaceField(
            'Title', 
            $titleField->performReadonlyTransformation()
        );
    }
}

首先,您获取现有的标题字段并检查其是否存在。然后,将该字段替换为其只读转换后的变体。

关于php - SilverStripe SiteConfig 标题字段操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38686690/

相关文章:

javascript - 使用 php 或 javascript 过滤结果

php - 当一切都已安装但仍然无法正常工作时,如何使用 LAMP 解决 Wordpress

class - 在 SilverStripe 中存储针对类的配置设置

php - SilverStripe Fluent 自动翻译行为

debugging - 如何在模板中 var_dump SilverStripe 变量

php - Silverstripe 4 单元测试出现 "Couldn' t find object”错误,如何解决?

php - MySQL 的 InnoDB - 避免为单个事务刷新日志缓冲区?

php 每个循环插入数据两次,而不是按预期插入每一行

php - 存储基于日期的可用性的最有效方法是什么

php - 如何检测 Silverstripe 页面作为父级还是子级加载到 Controller 中