contributte / datagrid

:muscle: DataGrid for Nette Framework: filtering, sorting, pagination, tree view, table view, translator, etc

Home Page:https://contributte.org/packages/contributte/datagrid/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.'%');
});