Есть ли способ управлять несколькими моделями в одной таблице для ModelAdmin в Silverstripe 4? - PullRequest
0 голосов
/ 20 сентября 2019

В настоящее время я управляю несколькими моделями в одной и той же модели администратора, но они управляются на разных вкладках страницы администратора модели.Мне было интересно, если есть способ объединить все модели в одну таблицу, поскольку данные несколько похожи.Это сэкономило бы время для каждого, кто работает в CMS, от необходимости каждый раз менять вкладки.Я также настроил фильтры в заголовке фильтра поля сетки, чтобы упростить сортировку и фильтрацию, если бы я мог заставить это работать.

Это то, что я делаю до сих пор.

<?php

class ReportsAdmin extends ModelAdmin
{
    private static $url_segment = 'reports';
    private static $menu_title = 'Reports';
    private static $menu_icon_class = 'cms-icon-drawer';
    private static $managed_models = [
        Model1::class,
        Model2::class,
        Model3::class,
        Model4::class,
        Model5::class,
    ];

    public function getEditForm($id = null, $fields = null)
    {
        $form = parent::getEditForm($id, $fields);
        $grid = $form->Fields()->fieldByName($this->sanitiseClassName($this->modelClass));
        $list = $grid->getList();
        $grid->setList($list);
        $grid->getConfig()->removeComponentsByType(GridFieldAddNewButton::class);
        $grid->getConfig()->removeComponentsByType(GridFieldImportButton::class);
        $grid->getConfig()->addComponent(new GridFieldExportButton());

        return $form;
    }
}

Iхотите, чтобы это было что-то вроде этого, все на одной странице.

  Col 1   | Col 2 | Col 3
  Model 1 | Data  | Data  
  Model 4 | Data  | Data  
  Model 2 | Data  | Data  
  Model 3 | Data  | Data
  Model 5 | Data  | Data  

php 7.3, Silverstripe 4.3.1

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