我有以下两个问题:
$query = $this->doctrine->em->createQuery("select u from ORM\Dynasties2\Characters u WHERE u.whichFamily = $whichfamily AND (u.deathDate = 0 OR u.deathDate IS NULL) ");
和
$query = $this -> doctrine -> em -> createQuery ("SELECT a, b.msgText, b.fromUser, b.timeStamp, b.importance, b.msgType FROM ORM\Dynasties2\Maillinks a JOIN a.msgId b");
第一个查询返回一个对象。
array(9) {
[0]=> object(stdClass)#108 (18) {
["__CLASS__"]=> string(25) "ORM\Dynasties2\Characters"
["id"]=> int(67)
(etc)
第二个查询返回一个数组。
array(4) {
[0]=> array(6) {
[0]=> string(24) "ORM\Dynasties2\Maillinks"
["msgText"]=> string(24) "asdfasdfasdfasdfasdfasdf"
(etc)
为什么第二个返回数组?
有没有简单的方法将其转换为对象?
(使用doctrine2和codeigniter2)
编辑:
如果我像这样更改第二个查询:
$query = $this -> doctrine -> em -> createQuery ("SELECT a FROM ORM\Dynasties2\Maillinks a JOIN a.msgId b");
然后输出是一个对象。所以我已经部分回答了我的问题 - 但是,上面的代码并没有返回我需要的数据。
答案 0 :(得分:0)
试试这个(如果关系定义正确,它应该返回并反对):
SELECT a, b FROM ORM\Dynasties2\Maillinks a JOIN a.msgId b