У меня есть таблица с именем schools
и там есть столбец lat
и long
Я определил ее как пустую, потому что я хочу, чтобы она позже заполнилась координатами, используя геокод Google. Теперь, когда я уже настроил свой API для геокодирования Google и получил координаты. Я хочу обновить столбец lat
и long
в моей базе данных, используя geocode api и querybuilder. Я использовал запрос foreach, но когда я делаю dd
, он печатает последние данные. Может кто-нибудь сказать мне, что я должен обновить их все? спасибо.
Структура БД
+---------------------------------------------+---------------------------+-------------+-----+-----+
| school_name | address | postal_code | lat | lng |
+---------------------------------------------+---------------------------+-------------+-----+-----+
| NGEE ANN SECONDARY SCHOOL | 1 TAMPINES STREET 32 | 529283 | | |
| SINGAPORE SPORTS SCHOOL | 1 CHAMPIONS WAY | 737913 | | |
| NUS HIGH SCHOOL OF MATHEMATICS AND SCIENCE | 20 CLEMENTI AVENUE 1 | 129957 | | |
| SCHOOL OF THE ARTS, SINGAPORE | 1 ZUBIR SAID DRIVE | 227968 | | |
| NORTHLIGHT SCHOOL | 151 TOWNER ROAD | 327830 | | |
| ASSUMPTION PATHWAY SCHOOL | 30 CASHEW ROAD | 679697 | | |
| SCHOOL OF SCIENCE AND TECHNOLOGY, SINGAPORE | 1 TECHNOLOGY DRIVE | 138572 | | |
| CREST SECONDARY SCHOOL | 561 JURONG EAST STREET 24 | 609561 | | |
| SPECTRA SECONDARY SCHOOL | 1 WOODLANDS DRIVE 64 | 737758 | | |
+---------------------------------------------+---------------------------+-------------+-----+-----+
Вот мой код
public function geocode(){
ini_set('max_execution_time', 0);
$client = new \GuzzleHttp\Client();
$geocoder = new Geocoder($client);
$geocoder->setApiKey(config('geocoder.key'));
$postals = \DB::table('schools')
->select('postal_code')
->get();
foreach ($postals as $postal){
$address = $geocoder->getCoordinatesForAddress($postal->postal_code);
}
dd($address);
}
В ответ я получил
"lat" => 1.4364557
"lng" => 103.8043789
"accuracy" => "ROOFTOP"
"formatted_address" => "1 Woodlands Drive 64, Singapore 737758"
"viewport" => {#609 ▶}
"address_components" => array:6 [▶]
"place_id" => "ChIJTXT5XbwR2jERbkmADGYcJ4U"
]
Ответ из последних данных, которые имеют почтовый индекс 737758