Pimcore QueryBuilder Bundle for easy query generation.

0.10.0 2024-04-09 21:03 UTC

This package is auto-updated.

Last update: 2024-06-09 21:35:07 UTC


Total Downloads Latest Version Software License

This bundle adds a Service to your Pimcore project, which can resolve vite assets.


Using composer

composer require carbdrox/pimcore-querybuilder-bundle


You can either use the service directly or use the provided trait.

Using the service directly

use QueryBuilderBundle\Service\QueryService;
use Pimcore\Model\DataObject\DummyData;  
$queryService = new QueryService(DummyData::class);

Using the provided trait

if you want to use the provided trait, you must either add \QueryBuilderBundle\Traits\HasQueryBuilder in your DataObject definition in the Use(traits) field, or extend your DataObject class and insert use \QueryBuilderBundle\Traits\HasQueryBuilder; there.



The trait adds the following static methods to your DataObject class:

Method Returns
query() QueryBuilder
orderBy(string $field, string $order = 'asc') QueryBuilder
limit(int $limit) QueryBuilder
offset(int $offset) QueryBuilder
count() int
first() Concrete|null
all() array
where(string|\Closure $field, string $operation, mixed $value, bool $escaped = true) QueryBuilder


The service provides the following methods:

Method Returns
where(string|\Closure $field, string $operation = '=', mixed $value = '', bool $escaped = true) QueryBuilder
whereNested(\Closure $callback) QueryBuilder
orWhere(string|\Closure $field, string $operation = '=', mixed $value = '', bool $escaped = true) QueryBuilder
orWhereNested(\Closure $callback) QueryBuilder
join(string $tableName, string $name) QueryBuilder
limit(int $limit) QueryBuilder
offset(int $offset) QueryBuilder
orderBy(string $field, string $order = 'asc') QueryBuilder
groupBy(string $column) QueryBuilder
count() int
get() array
first() Concrete|null
all() array
toSql() string
paginate(int $page = 1, int $perPage = 10) PaginationInterface


Thank you for considering contributing! The contribution guide can be found in the

Code of Conduct

Please review and abide by the Code of Conduct.


The Pimcore Vite bundle is licensed under the MIT license.


  • Add tests
  • The join method needs to be revised so that you don't have to manually join from the alphabetically smaller class to the larger one.