public function getLastOrderByItineraryAndPeriodOfDay(\Buggl\MainBundle\Entity\Itinerary $itinerary, $periodOfDay = 0) { $sql = "SELECT itsd.* \n\t\t\t\t\tFROM itinerary_to_spot_detail itsd\n\t\t\t\t\tWHERE 1\n\t\t\t\t\t\tAND itsd.itinerary_id = ?\n\t\t\t\t\t\tAND itsd.period_of_day = ?\n\t\t\t\t\t\tORDER BY itsd.order DESC\n\t\t\t\t\t\tLIMIT 0, 1"; $params = array($itinerary->getID(), $periodOfDay); $em = $this->getEntityManager(); $rsm = new ResultSetMappingBuilder($em); $rsm->addRootEntityFromClassMetadata('BugglMainBundle:ItineraryToSpotDetail', 'itsd'); $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameters($params); try { $result = $query->getResult(); } catch (\Doctrine\ORM\NoResultException $e) { return null; } return $result; }
public function getByItinerary(\Buggl\MainBundle\Entity\Itinerary $itinerary = null) { $em = $this->getEntityManager(); $rsm = new ResultSetMappingBuilder($em); $rsm->addRootEntityFromClassMetadata('BugglMainBundle:SpotDetail', 'sd'); $sql = "SELECT sd.* FROM spot_detail AS sd \n\t\t\t\t\tLEFT JOIN itinerary_to_spot_detail AS itsd \n\t\t\t\t\tON itsd.spot_detail_id = sd.id \n\t\t\t\tWHERE 1\n\t\t\t\t\tAND itsd.itinerary_id = ?\n\t\t\t\tORDER BY itsd.period_of_day, itsd.`order` ASC"; $query = $em->createNativeQuery($sql, $rsm); $query->setParameters(array($itinerary->getID())); // $query->setParameter(1, 34); $spotDetails = $query->getResult(); return $spotDetails; }