removeComponentsByType('SilverStripe\\Forms\\GridField\\GridFieldAddNewButton'); $this->addComponent( GridFieldAddByDBField::create('buttons-before-left') ); $this->addComponent( GridFieldMergeAction::create($mergeRecords, $parentType, $parentMethod, $childMethod) ); /** * @var GridFieldDataColumns $columns */ $columns = $this->getComponentByType('SilverStripe\\Forms\\GridField\\GridFieldDataColumns'); $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('SilverStripe\\Forms\\GridField\\GridFieldDataColumns'); $columns->setDisplayFields( [ 'Title' => 'Title', 'BlogPostsCount' => 'Posts', 'MergeAction' => 'MergeAction', 'Actions' => 'Actions' ] ); } }