1

我有以下两个查询:

$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)

为什么第二个返回一个数组?

有没有一种简单的方法可以将其转换为对象?

(使用教义2和codeigniter2)

编辑:

如果我像这样更改第二个查询:

$query = $this -> doctrine -> em -> createQuery ("SELECT a FROM ORM\Dynasties2\Maillinks a JOIN a.msgId b");

那么输出是一个对象。所以我已经部分回答了我的问题 - 但是,上面的代码没有返回我需要的数据。

4

1 回答 1

0

试试这个(如果关系定义正确,它应该返回和对象):

SELECT a, b FROM ORM\Dynasties2\Maillinks a JOIN a.msgId b
于 2012-04-20T22:09:50.343 回答