Как получить свойства от объекта в Laravel - PullRequest
1 голос
/ 31 мая 2019

Я новичок в Laravel. Я использую Laravel 5.8 в своем проекте.

У меня есть этот объект:

NominatimAddress {#1146 ▼
  -attribution: "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright"
  -category: "building"
  -displayName: "99, 9 Maja, Janowo, Olsztyn, powiat pomorski, pomorskie, "
  -osmType: "way"
  -osmId: 142789154
  -type: "yes"
  -coordinates: Coordinates {#1147 ▼
    -latitude: 51.51171143
    -longitude: 11.4023121
  }
  -bounds: Bounds {#1148 ▶}
  -adminLevels: AdminLevelCollection {#1149 ▶}
  -country: Country {#1152 ▶}
  -timezone: null
  -providedBy: "nominatim"
}

Как я могу получить широту и долготу от этого объекта?

Ответы [ 3 ]

2 голосов
/ 31 мая 2019

Как я вижу, вы используете библиотеку Geocoder .Итак, NominatimAddress extends Address, который имеет следующий метод:

public function getCoordinates()
{
    return $this->coordinates;
}

И, как прокомментировал Богдан, координаты инкапсулированы в класс Coordinates , который имеет средства доступа для широты и долготы.

Тогда вы можете попробовать:

$lat = $object->getCoordinates()->getLatitude();
$lon = $object->getCoordinates()->getLongitude();
0 голосов
/ 31 мая 2019
$lat = $object->coordinates->latitude;
$long = $object->coordinates->longitude;
0 голосов
/ 31 мая 2019

Доступ к атрибуту в модели Laravel Eloquent довольно прост. Это то же самое, что и доступ к атрибутам объекта stdClass.

Допустим, у вас есть переменная $object, которая содержит ваш объект. Вы получите доступ к атрибутам долготы и широты с помощью:

$lat = $object->coordinates->latitude;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...