2013-10-24 65 views
0

我是Symfony 2的新手,我有一個測驗E由測驗A,B,C組成的場景D,這些測驗存儲爲子測驗E,我正在嘗試查詢以查找所有問題的測驗E的所有子測驗,但它只是返回測驗A.我的代碼的問題:Symfony2查詢不起作用

$subQuizesString = ''; 
foreach($quiz - > getSubQuizes() as $key = > $quiz) 
$subQuizesString. = $quiz - > getId().','; 
$subQuizesString = rtrim($subQuizesString, ','); 

$query = $em - > createQuery(
    'SELECT question 
        FROM CriticalReadingQuizBundle:Question question 
        WHERE question.quiz in (:quizes) AND question.active = true 
        ORDER BY question.orderIndex, question.quiz, question.id') - > setParameter('quizes', $subQuizesString); 

$questions = $query - > getResult(); 

首先,我想與編譯subQuizesString做掉,因爲我在這個Symfony2的感覺應該是不需要的(但我不知道如何),其次(可能更重要的是),我想知道爲什麼我只接受問答答問題。

As總是,你的幫助是有價值的,非常感激。

+0

嘗試調試有點,例如看好dev.log文件執行的查詢。 – skler

回答

0

試試這個方法:

$subQuizesArray = array(); 
foreach($quiz - > getSubQuizes() as $key = > $quiz) { 
    $subQuizesArray[] = $quiz - > getId(); 
} 

$query = $em - > createQuery(
    'SELECT question 
        FROM CriticalReadingQuizBundle:Question question 
        WHERE question.quiz IN :quizes AND question.active = true 
        ORDER BY question.orderIndex, question.quiz, question.id') - > setParameter('quizes', $subQuizesArray); 

$questions = $query - > getResult(); 
+0

這工作,謝謝。沒有辦法讓subQuiz ID進入數組而不必循環?像$ quiz-> getSubQuizes() - > getId()。顯然這不起作用(我試過了,但類似的東西? – Magnanimity

+0

研究主義水合。 – Udan