首页 > 解决方案 > 如何使用 Symfony QueryBuilder 仅检索实体 ID?

问题描述

我正在尝试个性化symfony 2.4存储库查询以仅检索某些字段。平面字段一切正常,但是在检索实体字段时,我只得到 id(默认情况下)而不是整个实体数据。我的查询:

    $select = $this->createQueryBuilder('ca')
    ->select('ca.id, ca.name')
    ->leftJoin('ca.users', 'user')
    ->addSelect('(user) as users'); 

    $select->setMaxResults($count);

    return $select->getQuery()->getResult();

结果是:[{id: 1, name: "Some name", users: 1}, ...]

如何更改此用户查询以包含整个用户数据,例如 id、姓名、地址等?

标签: phpsymfonydoctrinedql

解决方案


这对我有用:

$select = $this->createQueryBuilder('ca')
    ->select('partial ca.{id, name}, users')
    ->leftJoin('ca.users', 'users');

$select->setMaxResults($count);

return $select->getQuery()->getArrayResult();

推荐阅读