Doctrine orm 条令查询生成器,按订单时的案例

Doctrine orm 条令查询生成器,按订单时的案例,doctrine-orm,doctrine-query,Doctrine Orm,Doctrine Query,我正在尝试使用ORDER BY进行查询,就像在本机SQL中这样 ORDER BY CASE `promotion` WHEN 0 THEN `net_price` ELSE `promotion_price` END DESC, `net_price` DESC 像这样的 $qb->orderBy('CASE `products.promotion` WHEN 0 THEN `products.net_price` ELSE `products.promotion_pri

我正在尝试使用ORDER BY进行查询,就像在本机SQL中这样

ORDER BY CASE `promotion` WHEN 0 THEN `net_price`
   ELSE `promotion_price`
  END DESC, `net_price` DESC
像这样的

$qb->orderBy('CASE `products.promotion` WHEN 0 THEN `products.net_price`
   ELSE `products.promotion_price`
  END', 'DESC');
$qb->orderBy('products.net_price', 'DESC');
不起作用,我遇到了意外情况的错误

所以我试了一下:

$qb->addSelect('CASE products.promotion WHEN 0 THEN products.net_price ELSE products.promotion_price END price');
$qb->orderBy('products.price', 'DESC');
这次我得到

'promotion WHEN': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
在这两种情况下,我都试着把它放在括号里,因为我发现很少有帖子说它有帮助,不幸的是,对我来说,它只是在第一个场景中将错误消息改为“意外”,然后

Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got ')'
第二张


问题是:是否可以通过使用条令查询生成器按顺序使用条件?

案例构建是特定于供应商的,默认情况下不是条令2的一部分。不过,您可以查看一下。您可以将该函数用于您的用例。

我正在使用PostgreSQL,我正在尝试使用“case-WHEN”原则编写查询。我是否必须添加扩展以获得支持。?