多年后再次拾起它。我不能在 cms 弹出组件中使用 gridfield 吗?这里我有 Ingredient 实体,我想将数据库中的 Ingredients 添加到 Recipe 实体。即使是一个简单的也不会出现。食谱.php ... private static $db = [ 'Title' => 'Varchar', 'Description' => 'Text', ]; private static $has_one = []; private static $many_many = [ 'Ingredients' => Ingredient::class, ]; public function getCMSFields_forPopup() { $gridConfig = GridFieldConfig_RelationEditor::create()->addComponents( new GridFieldDeleteAction('unlinkrelation') ); $grid = GridField::create( 'Ingredients', 'Ingredients', $this->Ingredients(), $gridConfig, ); $fields = FieldList::create( TextField::create('Title'), TextareaField::create('Description'), $grid ); // or maybe something like.. // $fields->addFieldToTab('Main', 'Ingredients', 'Ingredients', $grid); return $fields; }
1 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
getCMSFields_forPopup在 Silverstripe 4 或 Silverstripe 3 中不存在。这是在 Silverstripe 2 中。
试试getCMSFields吧。
public function getCMSFields()
{
$fields = parent::getCMSFields();
$ingredientsFieldConfig = GridFieldConfig_RelationEditor::create();
$ingredientsField = GridField::create(
'Ingredients',
'Ingredients',
$this->Ingredients(),
$ingredientsFieldConfig
);
$fields->addFieldToTab('Root.Main', $ingredientsFieldConfig);
return $fields;
}
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报
0/150
提交
取消