Doctrine and filter numeric column
krajcikondra opened this issue · comments
Hi,
I have project with contribute/nettrine and contributte/datagrid. I have numeric column "year".
$grid->addColumnNumber('year', 'Year');
$grid->addFilterText('year', 'Year');
When I write some value to filter input and press enter I get following error:
An exception occurred while executing a query: SQLSTATE[42883]: Undefined function: 7 ERROR: function lower(integer) does not exist
LINE 1: ...ECT COUNT(b0_.id) AS sclr_0 FROM "book" b0_ WHERE LOWER(b0_....
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts
Is it bug or do I something bad?
Thanks in advance
Hi, you have to use custom condition for the filter and write custom DQL to handle this.
$grid->addFilterText('number', 'web.order.number')->setCondition(function($qb, $query) {
$qb->andWhere('cast(e.number as varchar) LIKE :number');
$qb->setParameter('number', '%'.$query.'%');
});