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