范围从表格中选择。让我们说用户选择4& 9.如何在这些范围内检索测试和测验 - 只有那些范围,而不是在$ range范围内循环?由于$ ranges是一个对象,我认为我可以使用类型转换将其转换为一个简单的数组,即(数组)$ range ...但是这会导致一个空数组。最终我试图在不使用foreach循环的情况下获得一个范围的id
$ranges = $form->get('ranges')->getData();
$tests = $em->getRepository('AppBundle:Test')->findBy($ranges);
$quizes = $em->getRepository('AppBundle:Quiz')->findBy($ranges);
$testsAndQuizzes = array_merge($tests, $quizzes);
这样做的目的是,一旦我达到这一点,我可以遍历我的合并测试和测验数组,并获得所有可能的结果,并使用一个较少的循环。
foreach ($testsAndQuizes as $tq) {
var_dump($tq);//all of $tq's in $ranges 4 & 9.
}
答案 0 :(得分:0)
利用查询?
$repository = $this->getDoctrine()->getRepository('AppBundle:Test');
$query = $repository->createQueryBuilder('test')
->where('test.id >= :range_min')
->andWhere('test.id <= :range_max')
->setParameter(['range_min' => $range_min, 'range_max' => $range_max])
->getQuery();
$test = $query->getResult();
对Quiz
执行相同操作。