/** * @return array * @Get("/closeToMe/{user}") * @ParamConverter("user", class="SubwayBuddyUserBundle:User") */ public function getClosestBuddyAction(User $user) { $em = $this->getDoctrine()->getManager(); $entitys = $em->getRepository('SubwayBuddyUserBundle:User')->findAll(); if (!$entitys) { throw $this->createNotFoundException('Data not found.'); } $longitude = $user->getLongitude(); $latitude = $user->getLatitude(); $max_longitude = $longitude + 0.5; $max_latitude = $latitude + 0.5; $min_longitude = $longitude - 0.5; $min_latitude = $latitude - 0.5; $buddys = array(); foreach ($entitys as $buddy) { if ($buddy->getLongitude() && $buddy->getLatitude()) { if ($min_longitude < $buddy->getLongitude() && $buddy->getLongitude() < $max_longitude or $min_longitude > $buddy->getLongitude() && $buddy->getLongitude() > $max_longitude) { if ($min_latitude < $buddy->getLatitude() && $buddy->getLatitude() < $max_latitude or $min_latitude > $buddy->getLatitude() && $buddy->getLatitude() > $max_latitude) { if ($buddy != $user) { $fetchedTime = $buddy->getFetechedTime(); $fetchedTimeS = $fetchedTime->format('d') . "/" . $fetchedTime->format('m') . "/" . $fetchedTime->format('Y') . " " . $fetchedTime->format('H') . ":" . $fetchedTime->format('i') . ":" . $fetchedTime->format('s'); $buddys[] = array("user" => $buddy->getUsername(), "longitude" => $buddy->getLongitude(), "latatitude" => $buddy->getLatitude(), "subjects" => $buddy->getSubjects(), "fetchedTime" => $fetchedTimeS, "fetchedTimeTimestamp" => strtotime($fetchedTime)); } } } } } $view = Vieww::create(); $view->setData($buddys)->setStatusCode(200); return $view; }