protected function getCategoryProductsQueryBuilder(CategoryInterface $category = null) { $queryBuilder = $this->getRepository()->createQueryBuilder('p')->leftJoin('p.image', 'i')->leftJoin('p.gallery', 'g'); if ($category) { $queryBuilder->leftJoin('p.productCategories', 'pc')->andWhere('pc.category = :categoryId')->setParameter('categoryId', $category->getId()); } return $queryBuilder; }