/**
  * @param BannerPositionChoiceFilter $filter
  * @return BannerPosition[]
  */
 public function filterForChoose(BannerPositionChoiceFilter $filter)
 {
     $builder = $this->createQueryBuilder('p')->addSelect('b')->leftJoin('p.banner', 'b');
     if (null !== $filter->getBannerStatus()) {
         switch ($filter->getBannerStatus()) {
             case BannerPositionChoiceFilter::BANNER_STATUS_HAS_BANNER:
                 $builder->andWhere('p.banner IS NOT NULL');
                 break;
             case BannerPositionChoiceFilter::BANNER_STATUS_DOES_NOT_HAVE_BANNER:
                 $builder->andWhere('p.banner IS NULL');
                 break;
         }
     }
     if ($filter->getId()) {
         $builder->andWhere('p.id = :id')->setParameter('id', $filter->getId());
     }
     return $this->returnFilteredEntities($builder, $filter, 'p.id');
 }