stephenjude / simple-query-filter
2.0.0
2022-03-04 22:03 UTC
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0
- phpunit/phpunit: ^9.0|^9.5.0
This package is auto-updated.
Last update: 2022-08-22 15:38:28 UTC
README
此包已被弃用,不再维护。建议使用 spatie/laravel-query-builder 包。
Simple Query Filter
此包允许您根据 HTTP 请求过滤 eloquent 模型查询。
安装
您可以通过 composer 安装此包
composer require stephenjude/simple-query-filter
使用方法
将 WithQueryFilter
特性添加到您的可搜索模型
use Stephenjude\SimpleQueryFilter\WithQueryFilter; class Post extends Model { use WithQueryFilter; }
根据请求过滤模型:/posts?column_name=search_string
filter()
方法用于过滤表中的行。结果将仅包括满足查询参数所有条件的行。
class PostController extends Controller { public function index(Request $request) { // GET /posts?title=simple&slug=simple-query-filter $posts = Post::filter($request->query())->latest()->paginate(); } }
根据请求搜索模型:/posts?column_name=search_string
scout()
方法用于在模型上执行全文搜索。此方法的输出包括满足搜索条件的任何行。
class PostController extends Controller { public function index(Request $request) { // GET /posts?title=simple&slug=simple-query-filter $posts = Post::scout($request->query())->latest()->paginate(); } }
自定义查询参数
您可以将一个包含列名和搜索字符串的键值对数组传递给 filter 方法。
$queryParams = [ 'title' => 'Simple', 'description' => 'Query Filter' ]; $posts = Post::filter($queryParam)->latest()->paginate(); $posts = Post::scout($queryParam)->latest()->paginate();
列未找到异常
此包提供的 eloquent 过滤作用域如果无法找到指定的任何列名,将抛出错误请求 HTTP 异常。
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请查阅我们的安全策略了解如何报告安全漏洞。
致谢
许可
MIT 许可证(MIT)。请参阅许可文件获取更多信息。