1
我有以下查詢,如何在Symfony2的寫這些查詢在Symfony2中向paginator(KNP Paginator)添加自定義查詢?
SELECT Inventory_Stock.id, Inventory_Stock.quantity, SUM(InventoryUsage.quantity)
,Inventory_Stock.quantity - SUM(InventoryUsage.quantity) AS Stock
FROM Inventory_Stock LEFT JOIN InventoryUsage ON Inventory_Stock.id = InventoryUsage.InventoryStock_id
WHERE Inventory_Stock.id = 26 OR
Inventory_Stock.id = 27
GROUP BY Inventory_Stock.id
ORDER BY Stock DESC
我需要實現一個symfony的方式
private function getList($query = null)
{
$em = $this->getDoctrine()->getEntityManager();
if(!$query)
{
$query = $em->createQueryBuilder()
->select('i')
->from('ItxBundle:InventoryStock', 'i')
->innerJoin('i.Product','p')
->getQuery();
}
$adapter = $this->get('knp_paginator.adapter');
$adapter->setQuery($query);
$adapter->setDistinct(TRUE);
$paginator = new Paginator($adapter);
$paginator->setCurrentPageNumber($this->get('request')->query->get('page', 1));
$paginator->setItemCountPerPage($this->container->parameters['items_per_page']);
$paginator->setPageRange($this->container->parameters['page_range']);
return $paginator;
}
,並在考慮到上述查詢
{% if entity.quantity - entity.Usage < 0 %}
0
{% else %}
{{ entity.quantity - entity.Usage | number_format(0) }}
{% endif %}
我在這裏使用三個表,下面給出的關係
InventoryStock 1 - N的InventoryUsage InventoryStock 1 - 1產品
需要顯示的可用庫存(InventoryStock.Quanitity - 總和(InventoryUsage.quanitity))
還需要根據股票以及
實現排序如果有人能夠幫我解決問題,那會很棒,因爲這已經把我的頭髮拉了幾天。
請記住,DQL不包含純SQL的各項功能http://stackoverflow.com/questions/12652034/how-can-i -order-by-null-in-dql/12654552#12654552我認爲SUM不支持 –
是否可以排序? – Unni
它顯示「致命的錯誤:Class'WhiteOctober \ PagerfantaBundle \ WhiteOctoberPagerfantaBundle'找不到34行中的/var/www/Safflower/app/AppKernel.php」 – Unni