2015-07-28 41 views
-1

我想知道是否有可能只查詢特定數量的對象並對它們進行排序。例如,我想查詢添加的最新產品,並且只想從表格中獲取最新的10種產品。Symfony2查詢特定數量的訂單對象

我不知道你是否可以在控制器中訂購特定數量,但我知道你可以在樹枝上做slice。但是,如果可能的話,從查詢中獲得正確的數量將會更加充分。

但是,由於某種原因,我甚至不能排序我得到的產品(http://symfony.com/doc/current/book/doctrine.html#fetching-objects-from-the-database)。文檔清楚地表明您可以輕鬆訂購對象。然而,用我的代碼它並沒有訂購:

 $newProducts = $em->getRepository('MpShopBundle:Product')->findBy(array(), array('id' => 'DESC')); 

這將返回所有的產品。如何查詢所有這些中只有10個?

我怎樣才能達到我想要的?

回答

0

可以添加更多的參數到findBy() -method喜歡:

$newProducts = $em->getRepository('MpShopBundle:Product')->findBy(
    array('foo' => 'bar'), 
    array('id' => 'ASC'), 
    10, 
    0 
); 

signature of this method

/** 
* Finds entities by a set of criteria. 
* 
* @param array  $criteria 
* @param array|null $orderBy 
* @param int|null $limit 
* @param int|null $offset 
* 
* @return array The objects. 
*/ 
public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) 

進一步閱讀:7. Working with Objects/7.8.2. By Simple Conditions

EntityRepository#findBy()方法還接受排序,限制並作爲第二至第四參數偏移。

+0

正是我需要的!謝謝! – Dominykas55

+0

@ Dominykas55很高興我能幫忙:) – insertusernamehere