修改 GridFieldFilterHeader 以使用自定义汇总字段

Modify GridFieldFilterHeader to work with custom summary fields

为了更好地输出保存的数据,我经常使用 $summary_fields 中函数的输出,最简单的例子是 Created.Nice24 这个 returns 日期更易读格式,但阻止它按此值过滤或排序。

有没有办法解决这个问题,是否也可以修改 GridFieldFilterHeader 以使用这些不错的搜索值,并可能显示下拉字段而不是文本字段进行输入?

我可以回答你的第一个问题:不,不可能按你描述的函数表示日期的列进行排序 - 这是因为底层逻辑基本上是 "SORT BY" SQL子句和函数名显然 不是 数据库字段。

老实说,我不知道第二个是否可行,但它肯定是用于 ModelAdmin 中心窗格的自定义字段。您可以子类 GridFieldSortableHeader 并尝试修改它以执行您想要的操作。在 $searchable_fields static 和 DataObject::scaffoldSearchFields() 的文档中进行测验,看看 CMS 本身是如何实现它的。