Пример #1
0
 public function syncRegions($geonameId, $parent = null, $level = 1)
 {
     if ($level > 2) {
         return;
     }
     $geonames = $this->request('childrenJSON', ['geonameId' => $geonameId]);
     if (empty($geonames['geonames'])) {
         return;
     }
     foreach ($geonames['geonames'] as $geoname) {
         $data = ['name' => $geoname['name'], 'short' => $geoname['fcode'] == 'ADM1' ? $geoname['adminCode1'] : '', 'parent_id' => $parent ? $parent->id : 0];
         $region = Region::updateOrCreate($data);
         $this->info("Inserted {$region->name}");
         $this->syncRegions($geoname['geonameId'], $region, $level + 1);
     }
 }