heyday / model-admin-filter
为 Silverstripe Model Admin GridField 定制的过滤器集合
2.0.0
2024-01-19 01:49 UTC
Requires
This package is auto-updated.
Last update: 2024-08-25 23:08:35 UTC
README
为 Silverstripe Model Admin GridField 定制的过滤器集合。
安装
对于 Silverstripe 5,请使用命令 composer require heyday/model-admin-filter
快速使用
扩展模型管理器
MyProject\ModelAdmin\MyAdmin:
extensions:
- Heyday\ModelAdminFilter\FilterExtension
在你的模型管理器中添加此功能
/**
* {@inheritdoc}
*/
public function getList()
{
$list = parent::getList();
$list = $this->getFilteredList($list);
return $list;
}
getFilteredList
将返回来自自定义过滤器的筛选列表。
同样,在你的模型管理器中添加此功能以添加自定义过滤器字段
/**
* List of ModelAdminFilter custom fields
*/
public function extraFilterFields(): array
{
return [
[
'fieldName' => 'Created',
'fieldType' => 'dateTimeRange',
'options' => [
'beginTitle' => 'Create Date Begin',
'endTitle' => 'Create Date End'
]
]
];
}
上面的示例将添加一个名为 dateTimeRange
的自定义过滤器,这是一个 Created
字段的日期时间范围过滤器。此过滤器将显示记录,其中 Created
日期和时间在所选范围内。
常用字段属性
fieldName
:要过滤的数据库字段fieldType
:当前可用的字段,请参阅可用的过滤器字段类型
可用的过滤器字段类型
范围过滤器
按关键字搜索过滤器
dateRange
根据所选日期字段的日期范围筛选记录。
[
'fieldName' => 'Created',
'fieldType' => 'dateRange',
'options' => [
'beginTitle' => 'Create Date From',
'endTitle' => 'Create Date To'
]
]
选项
beginTitle
:自定义开始标签endTitle
:自定义结束标签
dateTimeRange
根据所选日期字段的日期和时间范围筛选记录。
[
'fieldName' => 'Created',
'fieldType' => 'dateTimeRange',
'options' => [
'beginTitle' => 'Create Time From',
'endTitle' => 'Create Time To'
]
]
选项
beginTitle
:自定义开始标签endTitle
:自定义结束标签
numericRange
根据所选日期字段的数值范围筛选记录。
[
'fieldName' => 'Weight',
'fieldType' => 'numericRange',
'options' => [
'beginTitle' => 'Weight From',
'endTitle' => 'Weight To'
]
]
选项
beginTitle
:自定义开始标签endTitle
:自定义结束标签
按关键字搜索
根据关键字筛选记录,在模型管理器中添加此功能
/**
* List of fields filtered by keyword
*/
public function keywordSearchFilter(): array
{
return [
'fieldsToMatch' => [
'FirstName' => 'PartialMatch',
'LastName' => 'PartialMatch',
],
'options' => [
'title' => 'Search Exactly',
],
];
}
匹配字段:'[DBFieldName]' => '[MatchType]'
。如果 MatchType
不是 PartialMatch
,则假定是精确匹配。
选项
title
:自定义标签
隐藏默认过滤器
有时我们需要隐藏自动生成的过滤器,例如 DataObject
中的 $summary_fields
。在模型管理器中添加此功能
/**
* Hide default filters of data objects
*/
public function hideDefaultFilters(): bool
{
return true;
}