如何通过随机顺序显示结果,doctrine2 queryBuilder

时间:2015-01-06 22:15:47

标签: php symfony doctrine-orm

我有实体旅行,让我们说它有30个条目,例如:

1-
2- 
3-
4-
.
.
.
30-

我想随机选择6个实体,例如:2,14,7,25,16,1

我已经尝试过这段代码,但它确实有效,但结果总是按照ASC(3,4,5,6,7,8)的顺序显示。

    public function getRandomTravelsFrontend()
    {
    $count = $this->createQueryBuilder('t')
         ->select('COUNT(t)')
         ->getQuery()
         ->getSingleScalarResult();

$qb = $this->createQueryBuilder('t')
        ->leftJoin('t.image', 'i')
        ->addSelect('i')
        ->Where('t.enabled = 1')
        ->setMaxResults(6)
        ->setFirstResult(rand(0, $count - 6));

        return $qb->getQuery()->getResult();
  }

如何按随机顺序显示结果?并且可以选择6个这样的实体:2,14,7,25,16,1?

1 个答案:

答案 0 :(得分:-3)

您可以在SQL select语句中使用ORDER BY rand()