heyday/model-admin-filter
Composer 安装命令:
composer require heyday/model-admin-filter
包简介
Custom filters collection for Silverstripe Model Admin GridField
README 文档
README
Custom filters collection for Silverstripe Model Admin GridField.
Installation
For Silverstripe 5
composer require heyday/model-admin-filter
Quick Usage
Extend model admin:
MyProject\ModelAdmin\MyAdmin:
extensions:
- Heyday\ModelAdminFilter\FilterExtension
In your model admin, add this function:
/**
* {@inheritdoc}
*/
public function getList()
{
$list = parent::getList();
$list = $this->getFilteredList($list);
return $list;
}
getFilteredList will return filtered list from custom filter.
Also in your model admin, add this function to add custom filter fields:
/**
* List of ModelAdminFilter custom fields
*/
public function extraFilterFields(): array
{
return [
[
'fieldName' => 'Created',
'fieldType' => 'dateTimeRange',
'options' => [
'beginTitle' => 'Create Date Begin',
'endTitle' => 'Create Date End'
]
]
];
}
The example above will add custom filter of dateTimeRange which is a date time range filter of Created field.
This filter will display record where Created dates and times are between selected range.
Common Field Attribute
fieldName: the DB field which will be filteredfieldType: current available fields, see Available Filter Fields Type
Available Filter Fields Type
Range filters:
Search by Keyword filters:
dateRange
Filter record by date range of selected date field.
[
'fieldName' => 'Created',
'fieldType' => 'dateRange',
'options' => [
'beginTitle' => 'Create Date From',
'endTitle' => 'Create Date To'
]
]
Options:
beginTitle: custom begin labelendTitle: custom end label
dateTimeRange
Filter record by date and time range of selected date field.
[
'fieldName' => 'Created',
'fieldType' => 'dateTimeRange',
'options' => [
'beginTitle' => 'Create Time From',
'endTitle' => 'Create Time To'
]
]
Options:
beginTitle: custom begin labelendTitle: custom end label
numericRange
Filter record by numeric range of selected date field.
[
'fieldName' => 'Weight',
'fieldType' => 'numericRange',
'options' => [
'beginTitle' => 'Weight From',
'endTitle' => 'Weight To'
]
]
Options:
beginTitle: custom begin labelendTitle: custom end label
Search By Keyword
Filter record by keyword, add this function in model admin:
/**
* List of fields filtered by keyword
*/
public function keywordSearchFilter(): array
{
return [
'fieldsToMatch' => [
'FirstName' => 'PartialMatch',
'LastName' => 'PartialMatch',
],
'options' => [
'title' => 'Search Exactly',
],
];
}
Fields To Match: '[DBFieldName]' => '[MatchType]'. If MatchType is not PartialMatch, Exact Match will be assumed.
Options:
title: custom label
Hide Default Filters
Sometimes we need to hide auto-generated filters, such as $summary_fields in DataObject. Add this function in model admin:
/**
* Hide default filters of data objects
*/
public function hideDefaultFilters(): bool
{
return true;
}
heyday/model-admin-filter 适用场景与选型建议
heyday/model-admin-filter 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.15k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 08 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 heyday/model-admin-filter 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 heyday/model-admin-filter 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4.15k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 24
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2020-08-14