andreas-glaser/doctrine-rql

This package is abandoned and no longer maintained. No replacement package was suggested.

Parses and applies RQL/FIQL scripts to doctrine orm query builders

0.4.0 2021-04-03 00:47 UTC

This package is auto-updated.

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


README

Parses and applies RQL/FIQL scripts to doctrine orm query builders.

Installation

composer require andreas-glaser/doctrine-rql 0.4.*

Usage Test

<?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();

A full list of available RQL/FIQL operators can be found at:

https://github.com/libgraviton/rql-parser/#operators

Additional Operators

  • NULL Comparison
    • isnull(fieldName)
    • isnotnull(fieldName)