多选DQL

时间:2016-02-28 22:19:36

标签: symfony doctrine-orm dql

我有:

if (count($data['paymentTypes'])<5) {
    $arr = array();
    foreach (array_values($data['paymentTypes']) as $value) { $arr[]=$value->getId(); }
    $query = $query->leftJoin('p.payments','g')->where('g.id IN(:num)')->setParameter('num', $arr);
}

if (count($data['expertise']->toArray())>0) {
    $arr = array();
    foreach (array_values($data['expertise']->toArray()) as $value) { $arr[]=$value->getId(); }
    $query = $query->leftJoin('p.expertise','g')->where('g.id IN(:num)')->setParameter('num', $arr);
}

如果两个语句都为真,我怎么能阻止查询中断?我希望leftjoins和wheres聚集,但他们会抛出异常。实现这一目标的最简洁方法是什么?

1 个答案:

答案 0 :(得分:0)

在第二部分使用与第一部分不同的别名和参数名称。