0

次の結合を持つエンティティがあります。

class blogComment
{
    ....

    /**
     * @ORM\OneToMany(targetEntity="BlogComment", mappedBy="replyTo")
     */
    protected $replies;

    ....
}

これで、すべての返信を正常に取得できます。しかし、私は取得したいだけです:where active = true

どうやってするか?

コントローラーでクエリでコメントを取得することをお勧めする場合は、ネストされた配列を構築して次のような結果を取得する方法をお勧めします。

ネストされたコメント

4

2 に答える 2

0

http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html

ブログのコメントを取得して表示する場所 (おそらくコントローラー上) では、アクティブな返信のみが抽出されるようにクエリをカスタマイズする必要があります。何かのようなもの:

$query = $em->createQuery('SELECT b FROM blogComment b JOIN b.replies r WHERE r.active = :active');
$query->setParameter('active', true);
$blogComments = $query->getResult();

編集:

ネストされた返信の新しい要件については、コメント エンティティとその親コメントの間の関係を指定する必要があります。

于 2013-02-10T13:25:49.943 に答える