0

我有一组实体,我想根据该实体的一个属性对其进行排序。我看到像 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());
 }
4

1 回答 1

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')
[…]

到您的查询。


在这两种情况下,结果都按您的数据库排序。所以没有必要自己做这件事。

于 2013-04-11T14:45:46.480 回答