问题描述
拥有以下基本表(一对多关系)
客户端 - 有很多用户。
用户 - 每个用户都属于单一客户端。
Having the follow basic tables (one-to-many relationship)
Client - Has many users.
Users - Each user belongs to single client.
在一个非常简单的例子中,如果我查询用户实体(Querybuilder)
与 getArrayResult()
我看到以下内容:
In a very simple example if I query the user entity (Querybuilder)with getArrayResult()
I see the following:
- 实际生成的SQL包含外键字段为
返回(即ClientID) - 实际返回的数据数组不包含外键
字段。
在这个阶段,我不需要返回外部数据,所以不需要
加入关联的表。
At this stage I do not need to return foreign data and so do not needto join to the associated table.
所以问题是...
我的数组中返回外键值是什么或如何?
So question is...
What or how do I return the foreign key value in my array?
查询是:
$qb = $this->_em->createQueryBuilder();
$qb->select('e');
$qb->from('Entity\User', 'e');
SQL是:
SELECT w0_.Id AS Id0, w0_.Name AS Name2, w0_.ClientID AS ClientID7
FROM users w0_
推荐答案
尝试在您之前设置查询(而不是构建器)的 HINT_INCLUDE_META_COLUMNS
查询提示执行它
Try to set the HINT_INCLUDE_META_COLUMNS
query hint on the query (not the builder) before you execute it.
$q->setHint(Query::HINT_INCLUDE_META_COLUMNS, true);
这篇关于getArrayResult对于具有ManyToOne关联的实体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!