具有以下基本表格(一对多关系)
客户 - 有很多用户。
用户 - 每个用户都属于单个客户端。
在一个非常简单的例子中,如果我查询用户实体(Querybuilder)
与getArrayResult()
我看到以下内容:
在这个阶段,我不需要返回外国数据,因此不需要 加入相关表格。
所以问题是......
我在数组中返回外键值的内容是什么或如何?
查询是:
$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_
答案 0 :(得分:17)
在执行查询之前,尝试在查询(而不是构建器)上设置HINT_INCLUDE_META_COLUMNS
查询提示。
$q->setHint(Query::HINT_INCLUDE_META_COLUMNS, true);
答案 1 :(得分:0)
据我所知,你不能这样做,因为ClientID不是User的属性。用户拥有类似$ client的属性,该客户端实体具有$ id。
这让你感到困惑,因为你正在与Entites打交道,但你仍在思考SQL。
解决方案虽然效率稍差,但可能是将Client实体加入DQL查询,然后获取$results[N]['client']['id']
(或类似的,我对getResultArray()不太熟悉)