原则2.0查询生成器添加方法相互覆盖


Doctrine 2.0 Query Builder Add Methods Overwrite Each Other

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

$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 ...

我错过了什么吗?有没有一种方法来添加多个选择,而不把它们都粘在一个数组在一个单一的调用?

来自理论文档:QueryBuilder中的所有帮助器方法实际上都依赖于一个:add()。该方法负责构建DQL的每个部分。它有3个参数:$dqlPartName, $dqlPart 和$append(默认=false)。

将$append的默认行为更改为true后,这对我来说工作得更好了。