innoboxrr/search-surge

2.0.5 2024-03-09 22:20 UTC

This package is auto-updated.

Last update: 2024-09-09 23:17:34 UTC


README

SearchSurge 是一个 Laravel 应用中用于优雅且灵活地过滤和搜索数据的包。它使用构建类来轻松执行复杂查询。

安装

您可以通过 composer 安装此包

```bash composer require innoboxrr/search-surge ```

升级

V1.0 -> V2.0

  • 在版本 2.0 中,我们已删除所有与请求实例相关的引用,以传递数据,而是期望传递一个包含限制条件的数组。
  • 为了降低这种变化可能带来的摩擦,主要需要更改两个地方:当调用 get 方法时,应传递一个数组而不是请求,您可以使用 $request->all() 来声明这个数组。
  • 另一个需要更改的地方是 apply(Builder $builder, array $data) 方法中的过滤器。

之后,您可以继续将 $data 作为对象调用,就像之前使用 request 一样。

使用

此包的主要类是 Innoboxrr\SearchSurge\Search\Builder。以下是使用方法:

基本使用

首先,在控制器或服务中使用 Builder

```php use Innoboxrr\SearchSurge\Search\Builder; ```

然后,您可以创建一个新实例或注入它,并调用 get 方法,传递模型、数据和可选配置

```php $builder = new Builder();

$resultado = $builder->get(User::class, $data, $options); ```

自定义

您可以自定义搜索行为的多个部分

  • 过滤器路径:设置过滤器目录的路径。
  • 过滤器命名空间:设置过滤器的命名空间。

这些可以通过传递给 get 方法的 $options 数组来设置。

过滤器

您可以在 filtersPath 中指定的目录内创建自定义过滤器。构造函数将自动将它们应用到查询中。

示例

假设您有一个用户模型,并想按活跃状态和角色进行过滤。您可以创建相应的过滤器,然后使用构造函数。

```php $data = [ 'active' => 1, 'role' => 'admin', ];

$options = [ 'filtersPath' => 'app/Filters', ];

$resultado = $builder->get(User::class, $data, $options); ```

贡献

请参阅 CONTRIBUTING.md 获取更多详细信息。

安全

如果您发现与安全相关的问题,请通过电子邮件发送给开发者,而不是使用问题跟踪器。

许可

MIT 许可证 (MIT)。请参阅 许可文件 获取更多信息。

支持

对于一般支持和问题,请使用 GitHub 上的 问题部分

捐赠

如果您觉得这个包很有用,并希望支持持续开发,请考虑通过 此链接 捐赠。

祝您搜索愉快!🚀