Doctrine:使用equals不接受的Select语句

Oli*_*.Bn 11 doctrine dql doctrine-orm

根据DDC-2204问题说明

[SELECT by Equals]可以通过在SELECT子句中包含条件,对其进行别名,然后使用它来支持.您可能需要使用"AS HIDDEN name"来防止它出现在结果中

以下DQL应该是可能的:

SELECT main.id = 1 AS test FROM Entity main ORDER BY test
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这个(使用2.4)时,我得到了

Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got '='
Run Code Online (Sandbox Code Playgroud)

似乎开发人员建议的将条件放入SELECT的方法不起作用.这是一个错误和/或是否存在按条件选择和/或排序的另一种方式.

Aur*_*nas 4

可以使用case语句:

SELECT (CASE WHEN main.id = 1 THEN 1 ELSE 0 END) AS test FROM Entity main ORDER BY test