如何在 dictionary2 查询生成器 where 语句中添加运算符

2022-01-16 00:00:00 php symfony doctrine doctrine-orm

我试图从所选持续时间除以条目持续时间等于没有余数的表中进行选择.

Im trying to select from a table where the selected duration divided by the entry duration equals has no remainder.

$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 中工作.有人知道如何使用 Doctrine 的查询生成器来做到这一点吗?

This would work in plain SQL. Does anybody know how to do this with Doctrine's query builder?

推荐答案

符号 % 不是 DQL 运算符.试试这个:

The symbol % is not a DQL operator. Try this:

$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.html12.5.1 段.

Or read this: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html The 12.5.1 paragraph.

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

相关文章