public function location() { $hideWhereAmI = true; $location = new Location(); $location->load(); if (!empty($_GET)) { $location = new Location(); if (!empty($_GET['lat']) and !empty($_GET['lng'])) { $location->getPoint()->setLat($_GET['lat']); $location->getPoint()->setLng($_GET['lng']); $location->save(); } elseif (!empty($_GET['cep'])) { $address = new Address(); $address->setZipcode($_GET['cep']); $geocode = $this->api->geocode($address); if (!empty($geocode)) { $location->getPoint()->setLat($geocode->getLat()); $location->getPoint()->setLng($geocode->getLng()); $revgeocode = $this->api->revgeocode($geocode->getLat(), $geocode->getLng()); $location->setAddress($revgeocode); $location->save(); } else { $this->redirect("profile/location"); } } elseif (!empty($_GET['cityState'])) { if (!strstr($_GET['cityState'], ',')) { $this->redirect("profile/location"); } $cityStateToUpper = strtoupper($_GET['cityState']); list($cityField, $stateField) = \explode(',', $cityStateToUpper); $city = new City(); $city->setName(trim($cityField)); $city->setState(trim($stateField)); $address = new Address(); $address->setCity(new City($city)); $geocode = $this->api->geocode($address); if (!empty($geocode)) { $location->getPoint()->setLat($geocode->getLat()); $location->getPoint()->setLng($geocode->getLng()); $location->getAddress()->setCity($city); $location->save(); } else { $this->redirect("profile/location"); } } $this->redirect("/"); } $title = 'Onde estou'; return compact('title', 'geocode', 'hideWhereAmI', 'location'); }