如何在Symfony教义中使用'order by rand'?



我正在尝试在Symfony中使用Doctrine的可能性。我怎么做一个'命令和'遵循这个逻辑:

findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)

这是我到目前为止所做的(但它不起作用):

$this->entityManager->getRepository(people::class)->findBy([ 'visible' => true ], [ 'name' => 'rand()' ], 8);

我已经有扩展名'beberlei/doctrineextensions'

提前感谢您的帮助

你不能使用findBy与自定义dql方法,因为它只期望一个数组的键(属性名)和值(ASC或DESC)。

所以你必须在PeopleRepository中创建一个自定义方法来完成它。

例如:

function findRandom($isVisible = true)
{
return $this->createQueryBuilder('p')
->andWhere('p.visible = :visible')
->setParameter('visible', $isVisible)
->orderBy('RAND()')
->getQuery()
->getResult()
;
}

最新更新