1

次の2つのクエリがあります。

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

2 番目のクエリは配列を返します。

array(4) {
  [0]=> array(6) { 
    [0]=> string(24) "ORM\Dynasties2\Maillinks"
    ["msgText"]=> string(24) "asdfasdfasdfasdfasdfasdf"  
    (etc)

2番目のものはなぜ配列を返すのですか?

それをオブジェクトに変換する簡単な方法はありますか?

(doctrine2 と codeigniter2 を使用)

編集:

2 番目のクエリを次のように変更すると:

$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 に答える