1
I가 다음 쿼리, 에 Symfony2 이러한 쿼리를 작성하는 방법 내가 심포니 방법Symfony2의 paginator (KNP Paginator)에 사용자 정의 쿼리를 추가 하시겠습니까?
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;
}
과보기에 위의 쿼리를 구현해야
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
{% 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
"치명적인 오류 : 클래스 'WhiteOctober \ PagerfantaBundle \ WhiteOctoberPagerfantaBundle'/var/www/Safflower/app/AppKernel.php 34 행에 없습니다" – Unni