教义querybuilder DATE_FORMAT不起作用

佩德罗·卢兹(Pedro Luz)

我在createQueryBuilder中的DATE_FORMAT遇到一些问题

我的代码:

$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/

Qooplmao

DATE_FORMAT 以及一堆Mysql函数在Doctrine中不是直接可用的。

要使用它们,您可以创建自己的扩展名或类似的扩展名beberlei/DoctrineExtensions,然后将各自的功能添加到您的学说捆绑配置中,例如

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章