【发布时间】:2023-12-06 16:45:01
【问题描述】:
有没有办法对 GridField 进行分组(例如,按 ID)?如果它们没有相同的 SortOrder,则以下查询 (many_many) 返回一些数据对象两次或更多次。这是一些代码。我希望有人可以提供帮助;-)
private static $many_many = array(
'Mitarbeiter' => 'Mitarbeiter',
);
private static $many_many_extraFields = array(
'Mitarbeiter' => array(
'SortOrder' => "Int"
)
)
// Start Mitarbeiterzuordnung
$MitarbeiterFieldConfig = GridFieldConfig::create()->addComponents(
new GridFieldToolbarHeader(),
//new GridFieldSortableHeader(),
new GridFieldDataColumns(),
new GridFieldDeleteAction('unlinkrelation'),
new GridFieldSortableRows('SortOrder'),
new GridFieldManyRelationHandler(), 'GridFieldPaginator',
new GridFieldPaginator(20)
);
$MitarbeiterField = new GridField("Mitarbeiter", "Mitarbeiter", $this->Mitarbeiter()->sort('SortOrder'), $MitarbeiterFieldConfig);
$fields->addFieldToTab('Root.Mitarbeiter', $MitarbeiterField);
【问题讨论】:
-
您是否尝试过设置一个返回
$this->getManyManyComponents('Mitarbeiter')->sort('SortOrder')的Mitarbeiter()方法。然后在new GridField中,您只需使用$this->Mitarbeiter()。这似乎是设置GridFieldSortableRows的标准方式... -
是的,我已经把 public function Mitarbeiter() { return $this->getManyManyComponents('Mitarbeiter')->sort('SortOrder'); } 在 public function getCMSFields() { 但没有成功? }
-
您是否在
new GridField(..语句中将$this->Mitarbeiter()->sort('SortOrder')更改为$this->Mitarbeiter()? -
是的,我做到了:$MitarbeiterField = new GridField("Mitarbeiter", "Mitarbeiter", $this->Mitarbeiter(), $MitarbeiterFieldConfig);
-
我想代码来自 GridField 以外的其他地方。您介意为
Mitarbeiter提供代码链接
标签: silverstripe