dev-master
9999999-devLibrary providing a Doctrine2 wrapper over Datatables.js
MIT
The Requires
The Development Requires
by Bartosz PasiĆski
Wallogit.com
2017 © Pedro PelĂĄez
Library providing a Doctrine2 wrapper over Datatables.js
Doctrine Datatables library provides a Doctrine2 server side processing for Datatables., (*1)
This library was created because existing libraries lack of flexibility around field types and field filtering. This library does not provide any JavaScript code generation nor datatables.js sources, you need to install and run datatables.js yourself., (*2)
You can install this library using composer, (*3)
composer require neurosys/doctrine-datatables
or add the package name to your composer.json, (*4)
"require": {
...
"neurosys/doctrine-datatables": "dev-master"
}
It does not support global search (yet), (*5)
$builder = new TableBuilder($entityManager, $_GET);
$builder
->from('Foo\Bar\Entity\Sample', 's')
->add('text', 's.name') // field name will be resolved from request (mDataProp_X)
->add('number', 's.price') // field will be a number field which can be filtered by value range
->add('boolean', 's.active')
;
$response = $builder->getTable()
->getResponseArray('entity') // hydrate entity, defaults to array
;
// now you can simply return a response
// header ('Content-Type', 'application/json');
// echo json_encode($response);
Composed fields example:, (*6)
$builder
->from('Foo\Bar\Entity\Sample', 's')
->join('s.user', 'u')
->add('text', 's.name') // select and filter by a name field
->add('text', 'u.firstName, u.lastName', 'u.id') // select firstName and lastName but filter by an id field
->add('date')
;
Custom query builder example:, (*7)
$responseArray = $builder
->setQueryBuilder($customQueryBuilder)
->add('text', 's.foo', 's.bar') // select foo field but filter by a bar field
->getTable()
->getResponseArray();
Default renderer is PhpRenderer, this can be changed by passing another renderer as 4th argument to the TableBuilder:, (*8)
new TableBuilder($entityManager, $_GET, null, new TwigRenderer($twigEnvironment));
To set field template pass template option:, (*9)
$builder
->add('date', 's.createdAt', null, array(
'template' => 'path/to/template.html.twig'
))
In template.html.twig, (*10)
{{ value | date }}
This library is still in development, API is most likely to change., (*11)
Doctrine Datatables is licensed under the MIT license., (*12)
Library providing a Doctrine2 wrapper over Datatables.js
MIT