Php 使用symfony多对多关系获取随机结果
在我的学说中,实体与实体的问题和游戏有多对多的关系 我想随机得到一个游戏的问题Php 使用symfony多对多关系获取随机结果,php,doctrine-orm,doctrine,symfony,Php,Doctrine Orm,Doctrine,Symfony,在我的学说中,实体与实体的问题和游戏有多对多的关系 我想随机得到一个游戏的问题 现在,我可以用这种语法获得游戏的问题,但这不是随机的问题,而是给我一个游戏的所有问题,通常有两种解决方案: 如果您的游戏模型的可用问题数量不多,只需添加一个方法,然后从问题数组集合中随机选择一个问题即可 如果你的游戏中有大量的问题,那么最好的办法就是在自定义存储库中编写一个自定义查询,以获取与你的游戏相关联的随机问题 请参见和不好的代码,但工作正常: 假设您的问题是\doctor\Common\Collections
现在,我可以用这种语法获得游戏的问题,但这不是随机的问题,而是给我一个游戏的所有问题,通常有两种解决方案:
游戏
模型的可用问题数量不多,只需添加一个方法,然后从问题
数组集合
中随机选择一个问题即可游戏中有大量的问题
,那么最好的办法就是在自定义存储库中编写一个自定义查询
,以获取与你的游戏相关联的随机问题
请参见和不好的代码,但工作正常: 假设您的问题是
\doctor\Common\Collections\ArrayCollection
$questions = $game->getQuestions()->toArray();
shuffle($questions);
$randomQuestion = array_shift($questions);
如果有很多问题,您可以使用0到n-1之间的随机偏移量(n=您在这个游戏中有多少个问题)进行自定义查询。我认为您应该使用过滤功能