如何增加运营商在doctrine2查询生成器where语句(How to add operators

2019-07-29 22:17发布

我试着从其中选择的时间由入口时间划分等于没有剩下一个表中选择。

$qb = $em->createQueryBuilder()
->from('AcmeBlogBundle:Entry', 'e')
->andWhere(":duration % e.duration = 0")
->setParameter('duration', $duration);

这将返回错误:

[Syntax Error] line 0, col 226: Error: Expected =, <, <=, <>, >, >=, !=, got '%' 

这在普通的SQL工作。 是否有人知道如何与学说的查询生成器做到这一点?

Answer 1:

符号%是不是一个DQL运营商。 试试这个:

$qb = $em->createQueryBuilder()
->from('AcmeBlogBundle:Entry', 'e')
->andWhere("mod(:duration,e.duration) = 0")
->setParameter('duration', $duration);

或者这样说的: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html 12.5.1款。

MOD(a, b) - Return a MOD b.


文章来源: How to add operators in doctrine2 query builder where statement