嵌套对象(来自DQL选择的混合结果) [英] Nested Objects (mixed results from DQL select)
本文介绍了嵌套对象(来自DQL选择的混合结果)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的doctrine2查询:
I have a doctrine2 query like this:
$query = $this -> doctrine -> em -> createQuery ("SELECT a, b FROM ORM\Dynasties2\Maillinks a JOIN a.msgId b");
它返回混合结果,类似于:
ORM\Dynasties2\Maillinks Object
(
[id:ORM\Dynasties2\Millinks:private] => 1
[toUser:ORM\Dynasties2\Maillinks:private] => 16
[isRead:ORM\Dynasties2\Maillinks:private] => 0
[msgId:ORM\Dynasties2\Maillinks:private] => ORM\Dynasties2\Mailmsgs Object
(
[id:ORM\Dynasties2\Mailmsgs:private] => 1
[msgText:ORM\Dynasties2\Mailmsgs:private] => asdfasdfasdfasdfasdfasdf
[fromUser:ORM\Dynasties2\Mailmsgs:private] => 13
[timeStamp:ORM\Dynasties2\Mailmsgs:private] => DateTime Object
(
[date] => 2012-04-20 12:17:29
[timezone_type] => 3
[timezone] => America/Los_Angeles
)
[onTurn:ORM\Dynasties2\Mailmsgs:private] => 1
[importance:ORM\Dynasties2\Mailmsgs:private] => 2
[msgType:ORM\Dynasties2\Mailmsgs:private] => 1
)
)
我可以访问一些数据, 'top'很容易。
echo $ row - > getToUser();
返回'16'
I can access some of the data, at the 'top' easily enough.
echo $row -> getToUser();
returns '16'
我尝试过 echo $ row - > msgId-> getMsgText();
,但返回致命错误:无法访问私有属性ORM\Dynasties2\Maillinks :: $ msgId
如何访问对象内的数据?
或者:是我的查询和结果破碎?
Or: is my query and result broken? Do I need to do something different with my query or entities?
推荐答案
这是不是对你有用?
$row->getMsgId()->getMsgText();
你应该可以检查实际的实体文件(无论你有建造他们的原则还是其他人确定)检查该实体的getter和setter。
You should be able to check the actual entities files ( whether you had doctrine build them, or someone else did ) to check the getters and setters for that entity.
这篇关于嵌套对象(来自DQL选择的混合结果)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文