Doctrine 2.0 Query Builder添加方法相互覆盖

时间:2014-05-11 11:17:25

标签: php doctrine-orm query-builder doctrine-query

我认为查询构建器对象的目的是帮助动态构建查询。但是,每次我尝试在这种上下文中使用查询构建器时,辅助方法都会相互覆盖。例如:

$object_identifiers_I_need = array("Obj_One", "Obj_Two", "Obj_Three");
$qb = $em->createQueryBuilder();
foreach($object_identifiers_I_need as $object_identifier){
    $qb->add('select', $object_identifier)
}

仅返回:

SELECT Obj_Three ...

而不是所需的

SELECT Obj_One, Obj_Two, Obj_Three ...

我错过了什么吗?有没有办法在一次调用中添加多个选择而不将它们全部放在一个数组中?

1 个答案:

答案 0 :(得分:0)

来自doctrine documentation:QueryBuilder中的所有帮助器方法实际上都依赖于单个方法:add()。此方法负责构建每个DQL。它需要3个参数:$ dqlPartName,$ dqlPart 和$ append(默认= false)。

将$ append的默认行为更改为true后,这对我来说效果更好。