beyondcode/nova-filterable-cards

此包已被废弃,不再维护。未建议替代包。

Laravel Nova的可筛选指标卡


README

Latest Version on Packagist Total Downloads Build Status

为您的Laravel Nova指标添加自定义筛选器。

screenshot screenshot

安装

您可以通过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)。有关更多信息,请参阅 许可证文件