Laravel管道查询集合包:Laravel Pipeline Query Collection
Laravel  /  管理员 发布于 2年前   558
Laravel Pipeline Query Collection包 包含一组用于管道的 Eloquent 查询过滤器。
https://github.com/l3aro/pipeline-query-collection
给定一个复杂的过滤器查询,代码在查询条件方面可能会有点笨拙:
$users = User::query()
->when($request->name ?? null, function($query, $name) {
$query->where('name', 'like', "%$name%");
})
->when($request->is_admin ?? null, function($query, $isAdmin) {
$query->where('is_admin', $isAdmin ? 1 : 0);
})
->when($request->created_at_from ?? null, function($query, $date) {
$query->where('created_at', '>=', $date);
})
->when($request->created_at_to ?? null, function($query, $date) {
$query->where('created_at', '<=', $date);
})
->get();
使用这个包可以写成如下:
use Baro\PipelineQueryCollection;
// users?name=Baro&is_admin=1&created_at_from=2022-06-01&created_at_to=2022-06-31
$users = Users::query()->filter([
new PipelineQueryCollection\RelativeFilter('name'),
new PipelineQueryCollection\BooleanFilter('is_admin'),
new PipelineQueryCollection\DateFromFilter('created_at'),
new PipelineQueryCollection\DateToFilter('created_at'),
])
->get();
在撰写本文时,此软件包包含以下过滤器:
Bitwise
Boolean
Date from
Date to
Exact
Relation
Relative
Scope
Sort
你可以在 GitHub 上的 l3aro/pipeline-query-collection 开始使用这个包。
https://github.com/l3aro/pipeline-query-collection
该包的作者还写了一篇更深入的文章——构建一个性感的查询过滤器
https://baro.rezonia.com/blog/building-a-sexy-query-filter
——它引导您了解包背后的想法。
转:
https://laravel-news.com/pipeline-query-collection
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号