1

从页面类型中删除 Content 字段后,添加到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);

提前谢谢

4

1 回答 1

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').

编辑

@Zauberfisch 指出addFieldToTab可以采用第三个参数,让您指定要在之前插入的字段:

$fields->addFieldToTab('Root.Main', $newsObjectField, 'Metadata');
于 2013-10-22T18:36:24.770 回答