Есть ли способ группировать GridField (например, по ID)? Следующий запрос (many_many) возвращает некоторые объекты данных дважды или более, если они не имеют одинакового SortOrder. Вот какой код. Я надеюсь, что кто-то может помочь ;-)Несколько строк с одинаковым идентификатором в Silverstripe GridField
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);
Вы пытались настроить метод 'Mitarbeiter()', который возвращает '$ this-> getManyManyComponents ('Mitarbeiter') -> sort ('SortOrder')'. Затем в 'new GridField' вы просто используете' $ this-> Mitarbeiter() '. Это, по-видимому, стандартный способ настройки 'GridFieldSortableRows' ... – colymba
да, я положил \t public function Mitarbeiter() { return $ this-> getManyManyComponents ('Mitarbeiter') -> sort ('SortOrder') - ; } после публичной функции getCMSFields() { Но без успеха? } – Carsten
и вы изменили '$ this-> Mitarbeiter() -> sort ('SortOrder')' to '$ this-> Mitarbeiter()' в 'new GridField (..' statement? – colymba