如何在学说查询中设置结果模式



我想为前端创建一个JSON客户API,并且我正在使用Symfony与学说为此。在客户存储库中,有以下代码:

public function getCustomerById($customerId) {
    return $this->createQueryBuilder('c')
    ->andWhere('c.customerId = :id')
    ->setParameter('id', $customerId)
    ->getQuery()
    ->getResult();
}

使用该代码,我将获得一个带有客户实体或表格的所有列的数组。另外,我有两个很多关系关系,例如用户。上面的查询还从该用户表中选择所有列,将数据放入一个额外的密钥中,这正是我想要的,但不是所有列,例如我不想要结果中的密码。因此,是否有一种简单的方法可以指定仅从加入表中查询哪些列,或者我需要从我想要的客户和用户中选择所有列?

如果我在结果中使用指定的列尝试后者,则所有列位于数组中的一个级别(用户数据未在额外密钥下进行水合(。

预期的结果/阵列schould是:

...
firstName: '',
lastName: '',
user: 
    userId: 1,
    userName: '',
creationDate: '',
...

我如何在上面的额外键中获得这样的结果并在一个额外的键中加入表列,而没有从一个数组到另一个数组的额外数据映射?

我在使用部分选择

时得到上述结果
SELECT partial c.{customerId, ...}, partial u.{userId, userName} ...

尽管如此,它还是返回一个带有所有列的数组,但未选择的列是无效的。使用Hydation Mode Hydrate_Array它们已经消失了。

最新更新