从页面类型中删除“内容”字段后,添加到 Root.Main 的所有新字段都会显示在MetaData-Tab下。那太烦人了。有人能告诉我如何获取MetaData-Tab上方的新字段吗?
这是我的代码
$fields->removeFieldsFromTab('Root.Main', array('Content'));
$newsObjectField = new GridField('News', _t('Dict.NEWS', 'News'), $this->News(), CreateUnsortableGrid::create());
$fields->addFieldToTab('Root.Main', $newsObjectField);
提前进行
答案 0 :(得分:3)
addFieldToTab
默认情况下会在列表末尾添加新字段。
所以你可以使用类似的东西:
$newsObjectField = new GridField('News', _t('Dict.NEWS', 'News'), $this->News(), CreateUnsortableGrid::create());
$fields->fieldByName('Root')->fieldByName('Main')->insertAfter($newsObjectField, 'MenuTitle');
insertInsertBefore
的工作方式类似。
此处MenuTitle
可以是您想要的任何其他字段名称。
fieldByName
使用虚线语法,因此它也可以是$fields->fieldByName('Root.Main')
。
修改强>
@ZauberfischaddFieldToTab
指出的可以采用第三个参数,让您指定在之前插入的字段:
$fields->addFieldToTab('Root.Main', $newsObjectField, 'Metadata');