php - 有没有办法在 Silverstripe 4 中为 ModelAdmin 管理同一个表中的多个模型?
问题描述
目前,我在同一个模型管理员中管理多个模型,但它们在模型管理页面的不同选项卡中进行管理。我想知道是否有办法将所有模型组合到同一个表中,因为数据有些相似。这将为在 CMS 中工作的任何人节省每次都必须更改选项卡的时间。我还在 gridfield 过滤器标题中设置了过滤器,如果我能让它工作的话,可以使排序和过滤变得更加容易。
这就是我目前正在做的事情。
<?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;
}
}
我希望它是这样的,全部在一页中。
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,银条 4.3.1
解决方案
推荐阅读
- c# - 如何反序列化具有不正确重复结构的 json
- database - 将云中的数据库同步到本地以进行读取规模——如何触发同步?
- html - 矩形内圆响应内容
- c# - 添加或更新迁移时访问 Microsoft.Extensions.Hosting 服务时出错
- javascript - HTML5 Canvas Javascript - 如何使用“translate3d”制作带有瓷砖的可移动画布?
- ios - 在 Swift 中使用相同的顶级结构映射各种 JSON 响应
- python - REST API 发布请求导致请求成功但未创建
- stock - Thinkscript概率统计研究-需要帮助完成
- c# - 从逆向工程的 EF Core DbContext 创建新数据库
- list - 在 prolog 中表示表达式