0

我想在 ModelAdmin 上做一些小的定制。

  1. 我想将“添加”按钮上的文本更改为与原始 DataModel 不同的文本。

  2. 我有一个 has_many 关系。我想隐藏“链接到现有”的能力,这样就无法按照下面的方法搜索其他“技能”。

我在模型中有以下内容:

public function getCMSFields() {

    ...

    $characterSkillsField = new GridField(
                'CharacterSkills',
                'Character Skills',
                $this->CharacterSkills(),
                GridFieldConfig_RelationEditor::create()
            );

    $fields->addFieldToTab('Root.CharacterSkills', $characterSkillsField);

    ...

}

回答#2:

// 添加关系编辑器。

$config = GridFieldConfig_RelationEditor::create();

// 移除搜索和链接到其他技能的能力。

$config->removeComponentsByType('GridFieldAddExistingAutocompleter');

$characterSkillsField = new GridField('CharacterSkills', 'Character Skills', $this->CharacterSkills(), $config);

4

1 回答 1

4

关于#1:

将以下内容添加到由 GridField 管理的模型类(例如“CharacterSkill”):

private static $singular_name = 'foo';
private static $plural_name = 'bar';

之后不要忘记刷新缓存(将 '?flush=All' 添加到 url)。

前面会将按钮名称设置为“添加 foo”,但也可以使用以下命令设置您自己的按钮标题:

$config = GridFieldConfig_RelationEditor::create();
$addButton = $config->getComponentByType('GridFieldAddNewButton');
$addButton->setButtonName('my button name');
于 2013-11-12T07:31:52.580 回答