removeComponentsByType(GridFieldAddNewButton::class); $this->addComponent( GridFieldAddByDBField::create('buttons-before-left') ); $this->addComponent( GridFieldMergeAction::create($mergeRecords, $parentType, $parentMethod, $childMethod) ); /** * @var GridFieldDataColumns $columns */ $columns = $this->getComponentByType(GridFieldDataColumns::class); $columns->setFieldFormatting( [ 'BlogPostsCount' => function ($value, CategorisationObject $item) { return $item->BlogPosts()->Count(); } ] ); $this->changeColumnOrder(); } /** * Reorders GridField columns so that Actions is last. */ protected function changeColumnOrder() { /** * @var GridFieldDataColumns $columns */ $columns = $this->getComponentByType(GridFieldDataColumns::class); $columns->setDisplayFields( [ 'Title' => _t(__CLASS__ . '.Title', 'Title'), 'BlogPostsCount' => _t(__CLASS__ . '.Posts', 'Posts'), 'MergeAction' => 'MergeAction', 'Actions' => 'Actions' ] ); } }