Silverstripe ModelAdmin перетаскивания Сортируемый - PullRequest
1 голос
/ 01 апреля 2019

Я хотел, чтобы мой ModelAdmin GridField мог сортироваться с помощью перетаскивания. Я попытался добавить этот код:

$gridFieldName = 'Destributors';
    $gridField = $form->Fields()->fieldByName($gridFieldName);

    if ($gridField) {
        $gridField->getConfig()->addComponent(new GridFieldFilterHeader(),new GridFieldSortableRows('SortOrder'));
    }

Но, похоже, это не работает. Любая идея о том, как я могу это реализовать?

Любая помощь будет высоко ценится

1 Ответ

2 голосов
/ 07 апреля 2019

Это код, который я использовал в проекте SS3. Вы должны быть в состоянии легко обновить его до SS4.

<?php
class MealsModelAdmin extends ModelAdmin {

    private static $managed_models = array(
        'MealAttribute',
        'MenuCategory'
    );

    private static $url_segment = 'configuration';
    private static $menu_title = 'Configuration';

    public function getEditForm($id = null, $fields = null){
        $form = parent::getEditForm($id, $fields);
        $model = singleton($this->modelClass);

        /** add sorting if we have a field for... */
        if (class_exists('GridFieldOrderableRows')
            && $model->hasField('SortOrder')
            && $gridField=$form->Fields()->dataFieldByName($this->sanitiseClassName($this->modelClass))) {
            if($gridField instanceof GridField) {
                $gridField->getConfig()->addComponent(new GridFieldOrderableRows('SortOrder'));
            }
        }

        return $form;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...