2017-01-17 13 views
-1

私は、私の教義のエンティティでエンティティの質問とゲームとの関係が多岐にわたっています。symfonyと多対多の関係でランダムな結果を得る

私はゲームの一つの質問をランダム

今、私はこの構文$game->getQuestions()でゲームの質問を受けることができますが、それは私に、それはちょうど私のゲーム

のすべての質問に与えるランダムな質問を与えていないを取得したい
+0

私はあなたがフィルター機能を使うべきだと思います –

答えて

1

2つの解決策は、一般的にあります。

  1. 利用できる質問の数は、あなたのGameモデルがそれほど大きくない場合には、ちょうどそれにメソッドを追加し、ランダムにから質問を選びますArrayCollection

  2. たくさんとQuestionの多くは、あなたのGameの内側にある場合は、あなたの最善の策は、あなたのGameに関連付けられたランダムな質問をフェッチするために、カスタムRepository内のカスタムQueryを書くことです。

http://symfony.com/doc/current/doctrine/repository.htmlhttp://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html

0

ない良いコードを参照してください、しかし、作業:

をご質問と仮定すると多くの疑問がある場合、あなたが行うことができます\Doctrine\Common\Collections\ArrayCollection

$questions = $game->getQuestions()->toArray(); 
shuffle($questions); 
$randomQuestion = array_shift($questions); 

です0とn-1の間のランダムなオフセットを持つカスタムクエリ(n =あなたがこのゲームにどれくらいの質問を持っているか)