0

(クラシック)によってテーブルarticleにリンクされた基本的なテーブルがあります。カテゴリごとに(すべてのカテゴリに対して)5つの記事のみを取得する教義リクエストを作成したいと思いますcategoryid

このリクエストは、カテゴリのすべての記事を返します。それぞれに 5 つだけ必要です

public function getArticlesAndCategs(){
    $qb = $this->createQueryBuilder('c')
            ->orderBy('c.id','DESC')
                ->leftJoin('c.articles', 'a')
                ->addSelect('a')
                ->addOrderBy('a.id','DESC')
            ->getQuery();
    return $qb->execute();                
}

そのために私を助けてもらえますか?ありがとうございました

4

1 に答える 1

2

残念ながら、これは簡単な作業ではありません。少なくとも私はまだ満足のいく解決策を見つけていません(私にとっては満足です;))。

できることは次の 3 つです。

  1. カテゴリを反復処理し、カテゴリごとに 5 つの投稿を取得します。もちろん、これにより、カテゴリの数と同じ数のデータベースが要求されます。

  2. 結合された投稿を含むすべてのカテゴリを返し、php 内で反復します。欠点は、すべての投稿を返すことになるため、多数の投稿がある場合、大量のメモリが使用される可能性があることです。

  3. Doctrine に固執する必要がない場合は、ここから解決策を試すことができます: mySQL Returning the top 5 of each category

于 2013-02-01T12:09:01.530 に答える