laravel-query-builder
4,470
Stars
—
Forks
0
Watchers
—
Open Issues
待补全
许可证
PHP
语言
—
创建时间
最近更新
项目能做什么
可轻松根据 API 请求自动构建 Eloquent 查询的 Laravel 扩展包。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
<div align="left">
<a href="https://spatie.be/open-source?utm_source=github&utm_medium=banner&utm_campaign=laravel-query-builder">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://spatie.be/packages/header/laravel-query-builder/html/dark.webp">
<img alt="Logo for laravel-query-builder" src="https://spatie.be/packages/header/laravel-query-builder/html/light.webp">
</picture>
</a>
<h1>Build Eloquent queries from API requests</h1>
[](https://packagist.org/packages/spatie/laravel-query-builder)


[](https://packagist.org/packages/spatie/laravel-query-builder)
</div>
## Basic usage
### Filter a query based on a request: `/users?filter[name]=John`:
```php
use Spatie\QueryBuilder\QueryBuilder;
$users = QueryBuilder::for(User::class)
->allowedFilters('name')
->get();
// all `User`s that contain the string "John" in their name
```
[Read more about filtering features like: partial filters, exact filters, scope filters, custom filters, ignored values, default filter values, ...](https://spatie.be/docs/laravel-query-builder/v7/features/filtering/)
### Grouping multiple filters with OR/AND: `/users?filter[q]=John`:
```php
use Spatie\QueryBuilder\AllowedFilter;
use Spatie\QueryBuilder\QueryBuilder;
$users = QueryBuilder::for(User::class)
->allowedFilters(
AllowedFilter::partial('name'),
AllowedFilter::partial('full_name'),
AllowedFilter::groupOr('q', [
AllowedFilter::partial('name'),
AllowedFilter::partial('full_name'),
]),
)
->get();
// /users?filter[q]=John
// → WHERE (name LIKE '%John%' OR full_name LIKE '%John%')
//
// /users?filter[q]=John&filter[name]=Doe
// → WHERE name LIKE '%Doe%' AND (name LIKE '%John%' OR full_name LIKE '%John%')
```
`AllowedFilter::groupAnd()` is also available. Members can be any `AllowedFilter` type and the shorthand value is broadcast to every member.
[Read more about the JSON:API Fancy Filters recommendation this feature follows.](https://gist.github.com/e0ipso/efcc4e96ca2aed58e32948e4f70c2460)
### Including relations based on a request: `/users?include=posts`:
```php
$users = QueryBuilder::for(User::class)
->allowedIncludes('posts')
->get();
// all `User`s with their `posts` loaded
```
[Read more about include features like: including nested relationships, including relationship count, custom includes, ...](https://spatie.be/docs/laravel-query-builder/v7/features/including-relationships/)
### Sorting a query based on a request: `/user
阅读完整原文
项目深度分析 AI 生成
Laravel QueryBuilder 转 OpenAPI / TypeScript SDK 自动生成器
| 产品构想 | 构建命令行工具或 Laravel 扩展包,静态解析或动态反射 QueryBuilder 配置(allowedFilters, allowedSorts, allowedIncludes),全自动生成精准匹配的 OpenAPI 规范和前端强类型 SDK(如 TanStack Query Hooks)。 |
| 核心功能 | QueryBuilder AST 静态/运行时反射解析、OpenAPI 3.1 Schema 自动导出、强类型 TypeScript API 客户端代码生成、与 Scribe/Scramble 文档工具集成。 |
| 目标用户 | 前后端分离开发团队、注重类型安全的全栈工程师(Laravel + Vue/React)。 |
| 难度/周期 | 中等 · 3 - 5 周 · 成本:极低(主要是个人开发工时) |
| 收费模式 | 核心开源,高级功能(如直接生成前端 React/Vue Form 状态绑定、CLI 监听即时同步、团队私有 SDK 托管)采取商业授权或 SaaS 订阅模式。 |
| 竞争风险 | 现有文档生成工具(如 Scramble、Scribe)若通过官方插件补齐该能力,可能压缩市场空间。 |
| 依据 | 数据支持的判断 |
基于 QueryBuilder 规范的前端高级数据表格 UI 套件 (Inertia/Vue/React)
| 产品构想 | 开发一套商业级 Headless/Styled UI 组件库,前端状态(筛选器组合、排序、嵌套包含)严格映射 `spatie/laravel-query-builder` 的 URL 参数结构,实现零胶水代码的复杂数据表格交互。 |
| 核心功能 | 开箱即用支持 `filter[q]`、`groupOr`、`include` 的 UI 组件、双向 URL 状态同步、服务端分页与列显示控制组件、Tailwind CSS 原生支持。 |
| 目标用户 | 独立开发者、外包数字敏捷团队、企业内部管理系统开发者。 |
| 难度/周期 | 低至中等 · 4 - 6 周 · 成本:低(前端组件封装与文档站点建设) |
| 收费模式 | 一次性买断授权(单开发者/团队商业许可证),类似于 Tailwind UI 或 Filament 插件变现模式。 |
| 竞争风险 | 需长期维护多个前端框架(Vue、React 等)及与最新 Tailwind 版本的兼容性。 |
| 依据 | 已验证事实 |
QueryBuilder 查询性能与安全审计监控扩展 (Query Guardian)
| 产品构想 | 提供针对开放式 API 查询的性能防御包,监控因客户端滥用 `include` 导致的 N+1 查询与过度嵌套加载,以及未命中索引的 `partial filter` 导致的全表扫描,提供限流与阻断保护。 |
| 核心功能 | 查询复杂度预算上限计算、禁止未建立索引字段的过滤、关联关系深度与数量拦截、实时 APM 埋点与慢查询预警日志。 |
| 目标用户 | 高并发 SaaS 平台、面向公众开放 API 的企业后端团队、维护老旧 Laravel 项目的技术负责人。 |
| 难度/周期 | 中等 · 4 - 8 周 · 成本:低(基础扩展包形态,无高额云成本) |
| 收费模式 | 企业双重许可(Dual-license)或按服务器实例收费的企业版授权,包含高级审计仪表盘与合规报告生成。 |
| 竞争风险 | 大多数中小项目查询量级达不到触发性能瓶颈的阈值,客户画像偏中大型团队,销售周期较长。 |
| 依据 | 尚需验证的假设 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建时间待补全,最近推送 ,发布过 100 个 Release |
| 社区活跃 | Star 4,470 / Fork 0 / Issue 0(数据支持,可自行核实) |
| 许可证 | 未检测到(需人工确认) |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。