andreas-glaser/doctrine-rql

此包已被弃用且不再维护。未建议替代包。

解析并应用 RQL/FIQL 脚本到 doctrine orm 查询构建器

0.4.0 2021-04-03 00:47 UTC

This package is auto-updated.

Last update: 2023-10-29 01:34:36 UTC


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)