createQueryBuilder('r'); $property = $entity instanceof Person ? 'person' : 'household'; $qb->where("r.{$property} = :entity") ->setParameter('entity', $entity); return $qb->getQuery()->getResult(); } public function findByEntityAndDate(Person|Household $entity, DateTime $date, $sort = null) { $qb = $this->createQueryBuilder('c'); $entityStr = $entity instanceof Person ? 'person' : 'household'; $qb->where("c.{$entityStr} = :entity") ->andWhere('c.startDate <= :date') ->andWhere('c.endDate > :date OR c.endDate IS NULL'); if (null !== $sort) { $qb->orderBy($sort); } $qb->setParameters([ 'entity' => $entity, 'date' => $date, ]); return $qb->getQuery()->getResult(); } }