neda
neda

Reputation: 63

doctrine pagination with join statement

I am trying to right a query which return me list of the users which has uploaded video(user_id in video table ), and have paginating thingy in the query the function is like this :

public function getUsersHasVideoShoutOut($offset, $limit)
{
    $qb = $this->createQueryBuilder('u')
         ->Join('u.video', 'uv');
           $qb->where('uv.muted=0')
             ->andwhere('u.muted = 0')
             ->addOrderBy('uv.release_date', 'DESC')
             ->setFirstResult($offset)
             ->setMaxResults($limit);

    return $qb->getQuery()->getResult();
}

but the problem is that I get duplicate data in next pages , is it because of join statement and pagination in doctorine ?

Upvotes: 0

Views: 535

Answers (1)

zen
zen

Reputation: 992

You can get distinct data:

public function getUsersHasVideoShoutOut($offset, $limit)
{
    $qb = $this->createQueryBuilder('u')
         ->Join('u.video', 'uv');
           $qb->where('uv.muted=0')
             ->andwhere('u.muted = 0')
             ->addOrderBy('uv.release_date', 'DESC')
             ->setFirstResult($offset)
             ->setMaxResults($limit)
             ->distinct();

    return $qb->getQuery()->getResult();
}

Upvotes: 1

Related Questions