andreas-glaser / doctrine-rql
此包已被弃用且不再维护。未建议替代包。
解析并应用 RQL/FIQL 脚本到 doctrine orm 查询构建器
0.4.0
2021-04-03 00:47 UTC
Requires
- php: ^7.4|^8.0
- andreas-glaser/php-helpers: ^1.2.0
- doctrine/orm: ^2.4.8
- graviton/rql-parser: ^3
Requires (Dev)
- ext-sqlite3: *
- doctrine/data-fixtures: ^1.3.1
- friendsofphp/php-cs-fixer: @stable
- phpunit/phpunit: ^8
- symfony/var-dumper: ^4.3.2
README
解析并应用 RQL/FIQL 脚本到 doctrine orm 查询构建器。
安装
composer require andreas-glaser/doctrine-rql 0.4.*
用法测试
<?php require 'vendor/autoload.php'; use AndreasGlaser\DoctrineRql\Factory\ORMVisitorFactory; $rqlString = $_GET['rql']; // ?rql=and(eq(cart.id,123),eq(cart.archived,0)) /** @var QueryBuilder $qb */ $qb = $entityManager->createQueryBuilder(); $qb ->select('cart') ->from('TestApp\Entity\Cart', 'cart'); // append filters ORMVisitorFactory::appendFiltersOnly($queryBuilder, $rqlString, false); /** @var TestApp\Entity\Cart[] $cartEntities */ $cartEntities = $qb ->getQuery() ->execute();
可用 RQL/FIQL 运算符的完整列表可在以下位置找到
https://github.com/libgraviton/rql-parser/#operators
附加运算符
- NULL 比较
isnull(fieldName)
isnotnull(fieldName)