glooby / doctrine-query-builder
Very powerful query builder, perfect for apis
Installs: 9 476
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 2
pkg:composer/glooby/doctrine-query-builder
Requires
- php: >=5.6
- doctrine/orm: ^2.5
- symfony/framework-bundle: ^3.2
This package is auto-updated.
Last update: 2025-10-14 06:08:24 UTC
README
Very powerful query builder, perfect to use when building api's or have the need to build very flexible queries
Supports unlimited nested AND/OR groups, most of the common SQL operators, joins, order by, distinct etc
Requirements:
- PHP >= 5.6
- Symfony HTTP Foundation > 3.2
- Doctrine ORM > 2.5
Installation:
With Composer:
{
"require": {
"glooby/doctrine-query-builder": "dev-master"
}
}
Usage:
use \Glooby\Doctrine\QueryBuilder\QueryBuilder; $repo = $this->getDoctrine()->getManager()->getRepository('AcmeMainBundle:Person'); $qb = new QueryBuilder(); $results = $qb->build($repo, $data)->getQuery()->getResult(); return new JsonResponse($results);
Example data:
{
"alias": "p",
"select": ["p.id"],
"where": {
"$or": {
"p.city": {
"$same": "c.city"
},
"p.zipCode": {
"$same": "c.zipCode"
},
"p.street": {
"$same": "c.street"
},
},
"c.city": {
"$in": [
"New York",
"London"
]
},
"c.employees": { "$equals": 1 },
"l.code": 49,
"p.country": "$not_null",
"p.phone": "$is_null",
"c.assets": { "$gte": 1000 },
"c.turnover": { "$lt": 10000 },
"t.code": {
"$in": [1, 2, 3]
},
"r.title": {
"$not_in": ":titles"
}
},
"distinct": true,
"params": {
"titles": ["CFO", "CMO"]
},
"orderBy": {
"p.name": "asc"
},
"join": {
"p.roles": "r",
"r.company": "c",
"c.trades": {
"alias": "t",
"type": "left"
}
}
}