Php Symfony2按顺序查询特定数量的对象

Php Symfony2按顺序查询特定数量的对象,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我想知道是否可以只查询特定数量的对象并对其进行排序。例如,我想查询添加的最新产品,我只想从表中获取最新的10种产品 我不知道您是否可以在控制器中订购特定数量的产品,但我知道您可以在小树枝中执行切片操作。但是,如果可能的话,直接从查询中获得正确的金额就足够了 然而,由于某些原因,我甚至无法对我得到的产品进行排序()。文档清楚地表明,您可以轻松地对对象进行排序。但是,对于我的代码,它不按顺序排列: $newProducts = $em->getRepository('MpSho

我想知道是否可以只查询特定数量的对象并对其进行排序。例如,我想查询添加的最新产品,我只想从表中获取最新的10种产品

我不知道您是否可以在控制器中订购特定数量的产品,但我知道您可以在小树枝中执行
切片操作。但是,如果可能的话,直接从查询中获得正确的金额就足够了

然而,由于某些原因,我甚至无法对我得到的产品进行排序()。文档清楚地表明,您可以轻松地对对象进行排序。但是,对于我的代码,它不按顺序排列:

        $newProducts = $em->getRepository('MpShopBundle:Product')->findBy(array(), array('id' => 'DESC'));
这将返回所有产品。如何只查询其中的10个


如何实现我想要的?

您可以向
findBy()
-方法添加更多参数,如:

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

进一步阅读:

EntityRepository#findBy()
方法还接受排序、限制和偏移量作为第二到第四个参数


正是我需要的!谢谢大家!@多明尼卡斯很高兴我能帮忙:)
/**
 * 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)