Я пытаюсь выполнить арифметическую операцию с помощью doctory Query Builder и присвоить результат псевдониму. Ниже приведен пример из geeksengine, что я хотел бы «преобразовать» в учение QueryBuilder: doctrine QueryBuilder арифметическая операция
/*
Query 1: This query calculates the total price before discount and after discount for each order item.
*/
SELECT order_id,
product_id,
unit_price * quantity AS "regular_price",
FROM order_details;
Это то, что я начал с:
$queryBuilder = $this->em->createQueryBuilder();
$queryBuilder->select('o')
->addSelect('o.unit_price * o.quantity AS regular_price')
->from('Test\Model\Entity\OrderEntity', 'o');
Но это бросает исключение:
RuntimeException
Not all identifier properties can be found in the ResultSetMapping: id
Я думаю, это потому, что regular_price
не является частью базы данных - так что c не отображаться.
Я могу сделать это с помощью чистого DQL, но по некоторым причинам я должен придерживаться QueryBuilder.
Любые идеи?
Спасибо за Ваш ответ, но я все еще получаю такое же исключение – Lowtower
Может прийти из другой части ваш код? Я не вижу ничего связанного с 'id' в этой части ... – Veve
Это была моя первая мысль. Но если я пропущу строку с помощью addSelect(), все будет хорошо. – Lowtower