我认为查询生成器对象的目的是帮助动态构建查询。但是,每当我尝试在这种上下文中使用查询构建器时,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后,这对我来说工作得更好了。