0

我是 Symfony 2 的新手,我有一个场景,其中测验 E 由测验 A、B、C 和 D 组成。这些存储为测验 E 的子测验。我正在尝试查询以查找所有子的所有问题测验 E 的测验,但它只返回测验 A 的问题。我的代码:

$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 中这应该是不必要的(但我不知道如何),其次(可能更重要),我想知道为什么我只收到测验 A 的问题。

与往常一样,您的帮助很有价值,非常感谢。

4

1 回答 1

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();
于 2013-10-24T16:23:27.190 回答