2016-12-27 55 views

回答

1

我已经解决了我的问题是这样的:

public function getRandomUser() 
{ 
    $qb = $this->getDocumentManager()->createQueryBuilder('AppBundle:User'); 
    $count = $qb->getQuery()->count(); 
    $skip_count = random_int(0, $count); 
    $qb->skip($skip_count); 

    return $qb->getQuery()->getSingleResult(); 
} 
2
<?php 

// Create Query Builder. 
$dm = $this->getDocumentManager()->createQueryBuilder('Document'); 

// Count documents. 
$count = $dm->getQuery()->execute()->count(); 

// Get random number not exceeding $count variable. 
$random = mt_rand(0, $count); 

// Query for document with skip. 
$random_document = $dm->skip($random) 
         ->getQuery() 
         ->getSingleResult(); 
1

尝试这种解决方案:

public function getRandomDocument() 
{ 
    $qb = $this->getDocumentManager()->createQueryBuilder('YourBundle:TargetDocument'); 
    $count = $qb->getQuery()->count(); 
    $skip_count = random_int(0, $count); 
    $qb->skip($skip_count); 

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