Content management system silverstripe 3 addFieldToTab“;“设置”;

Content management system silverstripe 3 addFieldToTab“;“设置”;,content-management-system,silverstripe,Content Management System,Silverstripe,我想在编辑页面视图(在屏幕截图中标记)的现有选项卡“设置”中添加一个字段 我试过这个: $fields->addFieldToTab('Root.Settings', new TextField('Intro')); 但它只是在包含附加字段的辅助选项卡“主内容”旁边添加了一个新选项卡 对于SilverStripe 3.0,您需要覆盖模型中的功能,例如: function getSettingsFields() { $fields = parent::getSettingsFiel

我想在编辑页面视图(在屏幕截图中标记)的现有选项卡“设置”中添加一个字段

我试过这个:

$fields->addFieldToTab('Root.Settings', new TextField('Intro'));
但它只是在包含附加字段的辅助选项卡“主内容”旁边添加了一个新选项卡


对于SilverStripe 3.0,您需要覆盖模型中的功能,例如:

function getSettingsFields() {
    $fields = parent::getSettingsFields();
    $fields->addFieldToTab("Root.Settings", new TextField('Intro'));
    return $fields;
}

在SilverStripe 2.x中,这是在getCMSFields()函数中完成的。

此方法对我很有效:

public function updateSettingsFields(FieldList $fields) {
  $fields->addFieldToTab("Root.MyNewSettingsSubTab", new TextField('Intro'));
  return $fields;
}

值得注意的是,如果通过
DataExtension
执行此操作,则会使用此方法,但是如果通过从
Page
扩展的类执行此操作,则第一个答案就是您将使用的方法。