我的一个实体中有以下字段:price(decimal)
、promo(boolean)
和 promoPrice(decimal)
我想通过实际价格查询订单,所以我需要创建这样的查询:
SELECT *, (!promo*price + promo*promo_price) as real_price
FROM `product` ORDER BY real_price ASC
有什么方法可以使用 QueryBuilder 来完成,或者我可能需要使用一些 native 方法?
最佳答案
解决方案:
$repository = $this->getDoctrine()->getRepository('AppBundle:Product');
$query = $repository->createQueryBuilder('p')
->addSelect('CASE WHEN p.promo = :value THEN p.promoPrice ELSE p.price END AS HIDDEN realPrice')
->setParameter('value', true)
->orderBy('realPrice', 'ASC')
->getQuery();
关于php - 按 Doctrine QueryBuilder 中的计算字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47461601/