SilverStripe 删除 CSV 导出按钮

SilverStripe remove CSV Export button

我正在尝试删除 ModelAdminGridField 顶部的 导出为 CSV 按钮。

我似乎找不到创建按钮的 class(GridFieldExportButton 对吗?)。我猜有一个函数用我不熟悉的按钮/"actions" 填充 GridField。

要删除关系的脚手架 GridField...

class MyDataObject extends DataObject {

    ...

    private static $has_many= array(
        'OtherDataObjects' => 'OtherDataObject'
    );

    ...

    function getCMSFields() {
        $fields = parent::getCMSFields();

        if($grid = $fields->dataFieldByName('OtherDataObjects'))
            $grid->getConfig()
                ->removeComponentsByType('SilverStripe\Forms\GridField\GridFieldExportButton');

        return $fields;
    }

    ...

}

如果您正在制作 GridField,那么只需在创建字段时添加它...

$gridField->getConfig()->removeComponentsByType('SilverStripe\Forms\GridField\GridFieldExportButton'); 

如果您正在寻找不在数据对象编辑表单中但实际上是...

class MyAdmin extends ModelAdmin {

    ...

    function getEditForm($id = null, $fields = null) {
        $form = parent::getEditForm($id, $fields);

        if($this->modelClass == 'MyDataObjectName') {
            $form->Fields()
                ->fieldByName($this->sanitiseClassName($this->modelClass))
                ->getConfig()
                ->removeComponentsByType('SilverStripe\Forms\GridField\GridFieldExportButton');
        }
        return $form;
    }

    ...
}

将 model_importers 设置为空将执行相反的操作并删除导入 ...

class MyAdmin extends ModelAdmin {

    ...

    static $model_importers = array();

    ...
}