beyondcode / nova-filterable-cards
Laravel Nova的可筛选指标卡
Requires
- php: >=7.1.0
- laravel/nova: *
- orchestra/testbench: ^3.7
Requires (Dev)
- mockery/mockery: ^1.1
- dev-master
- 0.0.1
- dev-dependabot/npm_and_yarn/y18n-3.2.2
- dev-dependabot/npm_and_yarn/elliptic-6.5.4
- dev-dependabot/npm_and_yarn/ini-1.3.7
- dev-dependabot/npm_and_yarn/http-proxy-1.18.1
- dev-dependabot/npm_and_yarn/lodash.mergewith-4.6.2
- dev-dependabot/npm_and_yarn/node-sass-4.14.1
- dev-dependabot/npm_and_yarn/lodash-4.17.19
- dev-dependabot/npm_and_yarn/websocket-extensions-0.1.4
This package is auto-updated.
Last update: 2021-04-30 15:16:46 UTC
README
为您的Laravel Nova指标添加自定义筛选器。
安装
您可以通过composer将此包安装到使用Nova的Laravel应用中
composer require beyondcode/nova-filterable-cards
使用
要将筛选功能添加到您的Laravel Nova指标卡,您需要将其中一个Filterable
特质添加到您的指标中。
根据您的指标类型,这些是可用的特质
FilterableValue
FilterableTrend
FilterablePartition
例如,在您的自定义Nova值指标卡中
// in your Nova value metric card class: import Beyondcode\FilterableCard\FilterableValue; use FilterableValue;
定义筛选器
您可以通过在指标中添加一个名为$filters
的新属性来定义您的卡片可用的筛选器。这必须是一个数组,包含可用筛选器的名称以及此特定筛选器的属性。
示例
// in your filterable Nova metric card class: protected $filters = [ 'Firstname' => [ 'type' => 'text' ], 'Status' => [ 'type' => 'select', 'options' => [ 'all' => 'All', 'active' => 'Active', 'inactive' => 'Inactive' ], ] ];
使用Define方法定义筛选器
有时您可能希望通过数据库调用设置可用筛选器选项,或从配置中加载它们。为此,您也可以使用以下命名约定定义筛选器选项:defineStudlyCaseFilterName
来定义筛选器选项。
例如,如果您想添加并定义一个名为User Status
的自定义筛选器,您可以这样做
// in your filterable Nova metric card class: protected $filters = [ 'Firstname' => [ 'type' => 'text' ], 'User Status' ]; public function defineUserStatus() { return [ 'type' => 'select', 'options' => [ 'all' => 'All', 'active' => 'Active', 'inactive' => 'Inactive' ], ]; }
可用的筛选器类型
可用的筛选器类型有
select
checkbox
text
email
url
number
以及所有可以应用于HTML <input>
标签的其他类型。
应用筛选逻辑
要定义用户在通过模态筛选后想要筛选自定义指标查询的方式,您需要定义自定义筛选方法。命名约定与定义自定义筛选选项类似。它是filterStudlyCaseFilterName
。
此方法接收一个查询构建器对象和筛选器输入的值。您可以在构建器类中添加自己的查询并按需修改。只需确保返回查询对象即可。
示例
// in your filterable Nova metric card class: public function filterUserStatus($query, $status) { return $query->where('status', $status); }
测试
composer test
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件发送给 marcel@beyondco.de,而不是使用问题跟踪器。
鸣谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。