Doctrine 使用条令查询生成器部分选择左联接表

Doctrine 使用条令查询生成器部分选择左联接表,doctrine,Doctrine,使用条令查询生成器查询一个表时,可以编写如下部分选择: $queryBuilder = $this->createQueryBuilder('person'); $queryBuilder->addSelect('partial person.{id, name}'); 如何为左联接表编写部分选择?我尝试了类似的方法,但找不出正确的语法: $queryBuilder = $this->createQueryBuilder('person'); $queryBuilder-&g

使用条令查询生成器查询一个表时,可以编写如下部分选择:

$queryBuilder = $this->createQueryBuilder('person');
$queryBuilder->addSelect('partial person.{id, name}');
如何为左联接表编写部分选择?我尝试了类似的方法,但找不出正确的语法:

$queryBuilder = $this->createQueryBuilder('person');
$queryBuilder->join('person.address');
$queryBuilder->addSelect('partial person.{id, name} person.address.city'); // ???

我的目标是在执行查询时只选择Person和Address对象的一部分,以提高内存效率。

对于join操作,您的语法已关闭。使用时必须提供别名。在这里,您可以使用相同的语法查询部分地址对象:

//在PersonRepository的方法中 $qb=$this->createQueryBuilder'person' ->选择['partial person.{id,name}','partial address.{id,city}'] ->加入“person.address”、“address”; 请注意,我将id添加到为Address检索的字段中。如果您不这样做,条令将给您以下错误:

错误:类路径\到\实体\地址的部分字段选择必须包含标识符


作为旁注,您说过要为左联接表编写此select。如果要执行左连接,则需要使用leftJoin而不是JOIN这两种方法的签名是相同的。

Hi,如何将字段名:partial person.{id,name}->更改为partial person.{id,name as custome_name}?你不觉得恶心吗