Doctrine querybuilder DATE_FORMAT не работает

У меня возникли проблемы с DATE_FORMAT внутри createQueryBuilder

Мой код:

$qb7Days = $repo->createQueryBuilder('R') ->select( 'R.createdAt' ) ->where( "DATE_FORMAT(R.createdAt, '%Y-%m-%d') = :afterDays" ) ->andWhere( 'R.cCurrentReviewState = :state' ) ->andWhere( 'R.reminder = :reminder' ) ->setParameter( 'afterDays', $after7Days ) ->setParameter( 'state', $oReviewStateNotVerified ) // not_verified ->setParameter( 'reminder', 0 ) // never sent any reminder ->orderBy( 'R.id', 'ASC' ) ->getQuery(); 

Но я получаю

  [Doctrine\ORM\Query\QueryException] [Syntax Error] line 0, col 7: Error: Expected known function, got 'DATE_FORMAT' 

Я искал некоторые ссылки и нашел некоторые объяснения, что он должен работать таким образом, но для меня это похоже на то, что я делаю что-то неправильно.

http://www.uvd.co.uk/blog/labs/using-mysqls-date_format-in-doctrine-2-0/

DATE_FORMAT вместе с связкой функции Mysql напрямую не доступны в Doctrine.

Чтобы использовать их, вы можете либо создать свой собственный, либо добавить расширение, например beberlei/DoctrineExtensions а затем добавить соответствующую функцию в свою конфигурацию пакета доктрины, например

 doctrine: dbal: .... orm: .... dql: string_functions: DATE_FORMAT: DoctrineExtensions\Query\Mysql\DateFormat 

DATE_FORMAT не является признанной функцией доктрины. Эта ссылка, которую вы вставляли, – это пользовательский код, который автор написал для него, чтобы получить date_formate. Вы можете писать пользовательские функции в доктрине и регистрировать их, аккуратно?

Вот пример того, как это сделать – http://symfony.com/doc/current/cookbook/doctrine/custom_dql_functions.html

Вариант 1: вы пишете эту настраиваемую функцию для DATE_FORMAT, чтобы вы могли использовать ее снова и снова. Вариант 2: Возможно, переформатируйте дату в PHP, чтобы соответствовать формату даты в базе данных, вроде как

$ After7Days-> Формат ( 'Ут-d');

DATE_FORMAT не является строковой функцией, ее date_function:

config.yml

 doctrine: orm: dql: datetime_functions: date_format: DoctrineExtensions\Query\Mysql\DateFormat 

Я не уверен, но это верно только для меня:

 doctrine: orm: entity_managers: default: ... dql: datetime_functions: DATE_FORMAT: DoctrineExtensions\Query\Mysql\DateFormat