Symfony2查询不工作
我不熟悉Symfony 2,我有一个场景,其中测验E由测验a、B、C和D组成。这些被存储为测验E的子测验。我正在尝试查询以查找测验E的所有子测验的所有问题,但它只返回测验a的问题。我的代码:Symfony2查询不工作,symfony,Symfony,我不熟悉Symfony 2,我有一个场景,其中测验E由测验a、B、C和D组成。这些被存储为测验E的子测验。我正在尝试查询以查找测验E的所有子测验的所有问题,但它只返回测验a的问题。我的代码: $subQuizesString = ''; foreach($quiz - > getSubQuizes() as $key = > $quiz) $subQuizesString. = $quiz - > getId().','; $subQuizesString = rtrim($s
$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();
首先,我不想像在Symfony2中那样编译子测验字符串,这应该是不必要的(但我不知道怎么做),其次(可能更重要的是),我想知道为什么我只收到测验A的问题
一如既往,您的帮助是宝贵的,非常感谢。请尝试以下方法:
$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();
试着调试一下,例如在dev.log文件中查看执行的查询。这很有效,谢谢。有没有办法在不循环的情况下将子测验id放入数组?类似于$quick->getSubQuizes()->getId()。很明显,这不起作用(我试过了,但有点类似?研究。