为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Doctrine 查询中设置结果模式?

如何在 Doctrine 查询中设置结果模式?

PHP
MMMHUHU 2021-09-18 10:59:53
我想为前端创建一个 JSON 客户 API,为此我正在使用 Symfony 和 Doctrine。在客户存储库中有以下代码:public function getCustomerById($customerId) {    return $this->createQueryBuilder('c')    ->andWhere('c.customerId = :id')    ->setParameter('id', $customerId)    ->getQuery()    ->getResult();}使用该代码,我得到一个包含客户实体或表的所有列的数组。我也有两个多对一关系,例如用户。上面的查询还从该用户表中选择所有列,并将数据放在一个额外的键中,这正是我想要的,但不是所有列,例如,我不希望结果中包含密码。那么有没有一种简单的方法来指定它应该只从连接的表中查询哪些列,或者我是否需要从我想要的客户和用户中选择所有列?如果我在结果中使用指定的列尝试后者,则所有列都在数组中的一个级别(用户数据未在额外的键下水合)。预期的结果/数组应该是:...firstName: '',lastName: '',user:     userId: 1,    userName: '',creationDate: '',...我怎样才能得到这样的结果并在一个额外的键中水合物连接表列,就像上面的用户一样,而没有从一个数组到另一个数组的额外数据映射?
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

当我使用部分选择时,我得到了上述结果

SELECT partial c.{customerId, ...}, partial u.{userId, userName} ...

尽管如此,它返回一个包含所有列的数组,但未选择的列为空。使用水合模式 HYDRATE_ARRAY 它们消失了。


查看完整回答
反对 回复 2021-09-18
  • 1 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信