我的学说实体与实体问题和游戏有很多很多关系。
我想随机提出一个游戏问题
现在我可以使用这种语法$game->getQuestions()
来获取游戏的问题,但它不会给我一个随机的问题它只是给我一个游戏的所有问题
答案 0 :(得分:1)
通常有两种解决方案:
如果Game
模型的可用问题数量不是很大,只需向其中添加一种方法,然后从Question
ArrayCollection
中随机选择一个问题。< / p>
如果Question
中有很多Game
,那么最好的办法就是在自定义Query
内写一个自定义Repository
获取与您的Game
相关联的随机问题。
请参阅http://symfony.com/doc/current/doctrine/repository.html和http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html
答案 1 :(得分:0)
不是很好的代码,但工作:
假设您的问题是\Doctrine\Common\Collections\ArrayCollection
$questions = $game->getQuestions()->toArray();
shuffle($questions);
$randomQuestion = array_shift($questions);
如果有很多问题,你可以使用0到n-1之间的随机偏移量进行自定义查询(n =你对这个游戏有多少问题)