/**
  * @param  User         $user
  * @param  string|null  $search
  * @return QueryBuilder
  */
 public function searchComestibleOfUserQb(User $user, $search = null)
 {
     $qb = $this->createQueryBuilder('c');
     $qb->where($qb->expr()->eq('c.user', ':user'));
     $qb->setParameter('user', $user->getId());
     if (null !== $search) {
         $qb->andWhere($qb->expr()->like('c.name', ':name'));
         $qb->setParameter('name', '%' . $search . '%');
     }
     $qb->orderBy('c.name');
     return $qb;
 }
 /**
  * @param  \DateTime                  $from
  * @param  \DateTime                  $to
  * @param  User                       $user
  * @param  string                     $alias
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function getInRangeQueryBuilder(\DateTime $from, \DateTime $to, User $user = null, $alias = 'd')
 {
     $qb = $this->createQueryBuilder($alias);
     $qb->andWhere($alias . '.date >= :from');
     $qb->andWhere($alias . '.date <= :to');
     $qb->setParameter('from', $from);
     $qb->setParameter('to', $to);
     $qb->orderBy($alias . '.date', 'ASC');
     if (null !== $user) {
         $qb->andWhere($alias . '.user = :user');
         $qb->setParameter('user', $user->getId());
     }
     return $qb;
 }