removeComponentsByType('GridFieldAddNewButton'); $this->addComponent( new GridFieldAddByDBField('buttons-before-left') ); $this->addComponent( new GridFieldMergeAction($mergeRecords, $parentType, $parentMethod, $childMethod) ); /** * @var GridFieldDataColumns $columns */ $columns = $this->getComponentByType('GridFieldDataColumns'); $columns->setFieldFormatting(array( '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'); $columns->setDisplayFields(array( 'Title' => 'Title', 'BlogPostsCount' => 'Posts', 'MergeAction' => 'MergeAction', 'Actions' => 'Actions', )); } }