私は、私の教義のエンティティでエンティティの質問とゲームとの関係が多岐にわたっています。symfonyと多対多の関係でランダムな結果を得る
私はゲームの一つの質問をランダム
今、私はこの構文$game->getQuestions()
でゲームの質問を受けることができますが、それは私に、それはちょうど私のゲーム
私は、私の教義のエンティティでエンティティの質問とゲームとの関係が多岐にわたっています。symfonyと多対多の関係でランダムな結果を得る
私はゲームの一つの質問をランダム
今、私はこの構文$game->getQuestions()
でゲームの質問を受けることができますが、それは私に、それはちょうど私のゲーム
2つの解決策は、一般的にあります。
利用できる質問の数は、あなたのGame
モデルがそれほど大きくない場合には、ちょうどそれにメソッドを追加し、ランダムにから質問を選びますArrayCollection
。
たくさんとQuestion
の多くは、あなたのGame
の内側にある場合は、あなたの最善の策は、あなたのGame
に関連付けられたランダムな質問をフェッチするために、カスタムRepository
内のカスタムQuery
を書くことです。
http://symfony.com/doc/current/doctrine/repository.htmlとhttp://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html
ない良いコードを参照してください、しかし、作業:
をご質問と仮定すると多くの疑問がある場合、あなたが行うことができます\Doctrine\Common\Collections\ArrayCollection
$questions = $game->getQuestions()->toArray();
shuffle($questions);
$randomQuestion = array_shift($questions);
です0とn-1の間のランダムなオフセットを持つカスタムクエリ(n =あなたがこのゲームにどれくらいの質問を持っているか)
私はあなたがフィルター機能を使うべきだと思います –