0

次のような doctrine2 クエリがあります。

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

「上部」にあるデータの一部に簡単にアクセスできます。
echo $row -> getToUser();「16」を返します

私は試しecho $row -> msgId-> getMsgText();ましたが、それは戻りますFatal error: Cannot access private property ORM\Dynasties2\Maillinks::$msgId

オブジェクト内のデータにアクセスするにはどうすればよいですか?

または: クエリと結果が壊れていますか? クエリまたはエンティティで別の処理を行う必要がありますか?

4

1 に答える 1

2

これはうまくいきませんか?

$row->getMsgId()->getMsgText();

そのエンティティのゲッターとセッターを確認するために、実際のエンティティ ファイル (ドクトリンで作成したか、他の誰かが作成したかに関係なく) を確認できるはずです。

于 2012-04-21T03:54:36.390 に答える