如何在 SilverStripe 4 上编辑 many_many_extraFields?

我Data在多对多关系中添加了一个额外的字段,但我不知道如何编辑它。


特征


private static $belongs_many_many = [

        'Model' => Model::class

    ];

模型


private static $many_many = [

        'Features' => Feature::class,

    ];


private static $many_many_extraFields = [

    'Features' => [

        'SortOrder' => 'Int',

        'Data' => 'Varchar'

    ]

];




-- / --


$features = Feature::get();

$searchFeaturesButton = new GridFieldAddExistingSearchButton();

$searchFeaturesButton->setSearchList($features);

$featureConfig = GridFieldConfig_RelationEditor::create();

$featureConfig->removeComponentsByType([GridFieldAddExistingAutocompleter::class, GridFieldEditButton::class, GridFieldAddNewButton::class]);

$featureConfig->addComponent(new GridFieldOrderableRows());

$featureConfig->addComponent($searchFeaturesButton);

$featureGrid = GridField::create('Features', 'Features', $this->Features(), $featureConfig);

$field->addFieldToTab('Root.Main', $featureGrid);


-- / --



如何Data在我的 GridField 中查看一列并使其可编辑?


排序工作正常,因为它由 GridfieldOrderableRows()


慕婉清6462132
浏览 117回答 1
1回答

慕田峪4524236

在 SilverStripe 3 和 4 中,我们可以使用 SilverStripe GridField 扩展模块的GridFieldEditableColumns 功能来编辑many_many_extraFields数据。以下是如何执行此操作的示例:// Features field existing search button$featuresGridFieldSearchButton = new GridFieldAddExistingSearchButton();$featuresGridFieldSearchButton->setSearchList(Feature::get());// Features field editable columns$featuresGridFieldEditableColumns = new GridFieldEditableColumns();$featuresGridFieldEditableColumns->setDisplayFields([    'Title' => [        'title' => 'Title',        'field' => ReadonlyField::class,    ],    'Data' => [        'title' => 'Data',        'field' => TextField::class,    ],]);// Features field config including base GridFieldConfig_RelationEditor components, custom search button, editable columns and orderable rows$featuresGridFieldConfig = GridFieldConfig::create();$featuresGridFieldConfig->addComponent(new GridFieldButtonRow('before'));$featuresGridFieldConfig->addComponent($featuresGridFieldSearchButton);$featuresGridFieldConfig->addComponent(new GridFieldToolbarHeader());$featuresGridFieldConfig->addComponent(new GridFieldTitleHeader());$featuresGridFieldConfig->addComponent($featuresGridFieldEditableColumns);$featuresGridFieldConfig->addComponent(new GridFieldDeleteAction(true));$featuresGridFieldConfig->addComponent(new GridFieldOrderableRows());$featuresGridFieldConfig->addComponent(new GridFieldPageCount('toolbar-header-right'));$featuresGridFieldConfig->addComponent(new GridFieldPaginator());$featuresGridFieldConfig->addComponent(new GridFieldDetailForm());$featuresGridField = GridField::create(    'Features',    'Features',    $this->Features(),    $featuresGridFieldConfig);$fields->addFieldToTab('Root.Features', $featuresGridField);
打开App,查看更多内容
随时随地看视频慕课网APP