В настоящее время я управляю несколькими моделями в одной и той же модели администратора, но они управляются на разных вкладках страницы администратора модели.Мне было интересно, если есть способ объединить все модели в одну таблицу, поскольку данные несколько похожи.Это сэкономило бы время для каждого, кто работает в 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