2

Symfony2 の探索を始めたばかりで、Symfony2 の優れた機能の多さに驚かされます。http://tutorial.symblog.co.uk/でブログ チュートリアルを開始しました
が、2.0 ではなくバージョン 2.1 を使用しています。

私の問題は、ブログに次のエンティティがあることです。

/**
 * @ORM\OneToMany(targetEntity="Comment", mappedBy="blog")
 */
protected $comments;

および Comment エンティティ内の次の内容:

/**
 * @var string $blog
 *
 * @ORM\ManyToOne(targetEntity="Blog", inversedBy="comments")
 * @ORM\JoinColumn(name="blog_id", referencedColumnName="id")
 */
private $blog; 

最新のブログを取得してコメントに参加する関数を作成したので、各ブログのコメントを遅延読み込みする必要がなく、次のようにコメント テーブルへの複数回の呼び出しを回避できます。

$qb = $this->createQueryBuilder('b')
            ->select('b')
            ->leftJoin('b.comments', 'c')
            ->addOrderBy('b.created', 'DESC'); 

しかし、小枝テンプレートで実行すると、そのクエリの結果はblog.comments 次のようになります。結合を使用して正しいブログを取得する最初のクエリを取得しましたが、コメントに結合された値を使用する代わりに、それぞれのコメントテーブルへの呼び出しを取得しますブログエントリー?その特定のケースでその機能をバイパスし、関係を維持して、ブログの表示ページからブログのすべてのコメントを取得するにはどうすればよいですか?

4

1 に答える 1

8

また、選択結果にコメント オブジェクトを追加する必要があります。

->select('b', 'c')
于 2012-07-25T21:56:04.977 に答える