noitran / rql
RQL - 用于laravel / lumen项目的资源查询语言(RQL)包
0.2.0
2019-02-26 22:04 UTC
Requires
- php: >=7.2
- illuminate/database: ~5.7
- illuminate/support: ~5.7
Requires (Dev)
- nesbot/carbon: ^1.26.3
- orchestra/testbench: ~3.4.2|~3.5.0|~3.6.0|~3.7.0
- phpunit/phpunit: ~7.0
This package is auto-updated.
Last update: 2024-09-05 07:04:43 UTC
README
关于
该包允许在Laravel的Eloquent ORM中使用资源查询语言(RQL)。提供了一个简单轻量级的API,用于向基于HTTP的应用程序添加动态查询功能。该包作为HTTP请求和ORM之间的连接器。目前仅包括Eloquent处理器,但可以通过添加新的处理器轻松扩展包的功能。
安装
- 作为composer包安装
$ composer require noitran/rql
使用方法
use Noitran\RQL\Tests\Stubs\Models\User; use Noitran\RQL\ExprQueue; use Noitran\RQL\Processors\EloquentProcessor; // Getting builder instance of model, or builder // instance from noitran/repositories also can be passed. $builder = User::query(); $queue = new ExprQueue(); // Creating expression $exprClasses = $this->queue->enqueue( new \Noitran\RQL\Expressions\EqExpr(null, 'name', 'John') ); // Attaching expression into builder $query = (new EloquentProcessor($this->builder))->process($exprClasses); // Thats it! Expression has been applied. Can be checked by dumping query. // Example: dd($query->toSql()); // Dumps attached expression to sql: // select * from "users" where "name" = ?
所有示例都可以在测试文件中查看:Noitran\RQL\Tests\Processors\EloquentProcessorTest
待办事项
- 添加请求/输入解析器。
- 改进关系/列绑定。
- 改进文档并添加更多示例。