innoboxrr / search-surge
Requires (Dev)
- orchestra/testbench: ^7.0 | ^8.0
- phpunit/phpunit: ^9.5 | ^10.0
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 上的 问题部分。
捐赠
如果您觉得这个包很有用,并希望支持持续开发,请考虑通过 此链接 捐赠。
祝您搜索愉快!🚀