我有一个实体数组,我想根据这个实体的一个属性对它进行排序。 我看到像sort()这样的函数是在php中定义的,但我想添加基于哪个元素进行比较。任何想法???
$qb->select('a')
->from('TelnOperatorBundle:Subnumber', 'a')
->where('a.numberrange = :id')
->setParameter('id', $id);
//$entites=$qb->getQuery()
// ->getResult();
$entites = $qb->getQuery()->getResult();
asort($entites);
//var_dump($entites);
foreach($entites as $entite)
{
//$entite est une instance d'Article pour notre exemple
echo($entite->getId());
}
答案 0 :(得分:1)
如果您没有理由需要无序数组且您的实体由Doctrine处理,您可以在控制器中使用此代码:
$this->getDoctrine()->getRepository('TelnOperatorBundle:Subnumber')->findBy(
array('numberrange' => $id),
array('numberrange' => 'asc')
);
第一个数组包含WHERE
子句的值,第二个数组包含ORDER BY
的值。
如果要创建自己的查询(例如在存储库中使用),只需添加:
[…]
->where('a.numberrange = :id')
->addOrderBy('a.numberrange', 'desc')
[…]
查询。
在这两种情况下,结果都按数据库排序。因此,您无需自行完成此操作。