当前位置: 首页>>代码示例>>PHP>>正文


PHP City::firstOrNew方法代码示例

本文整理汇总了PHP中app\City::firstOrNew方法的典型用法代码示例。如果您正苦于以下问题:PHP City::firstOrNew方法的具体用法?PHP City::firstOrNew怎么用?PHP City::firstOrNew使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在app\City的用法示例。


在下文中一共展示了City::firstOrNew方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: Geocoding

 public function Geocoding()
 {
     //take addresses not yet scraped in the past or incorrectly scraped, geocode scraping, save to cities table
     $addressesWithoutGeolocation = Address::whereNull('city_id')->get();
     $GeoScraped = new GoogleMapsScraper();
     foreach ($addressesWithoutGeolocation as $address) {
         $gmaps_output = $GeoScraped->Geocode($address->raw_input);
         //get gmaps_status
         $dataArray['gmaps_status'] = null;
         $dataArray = parent::ExtractWithXpath($gmaps_output, $this->GeoPatterns, 'text', 'first', 'xml');
         //get address_components in array
         $componentsArray = array();
         $componentsArray = parent::ExtractWithXpath($gmaps_output, $this->AddressComponentsPattern, 'html', 'multiple', 'xml');
         $cityArray['city_name'] = null;
         $countryArray['country_code'] = null;
         $countryArray['country_name'] = null;
         //search country component in every address component, once found extract name and code
         foreach ($componentsArray as $AddressComponent) {
             if (preg_match("|type>country<|", $AddressComponent)) {
                 $AddressComponent = '<result>' . $AddressComponent . '</result>';
                 //get country_code, country_name
                 $countryArray = parent::ExtractWithXpath($AddressComponent, $this->CountryPatterns, 'text', 'first', 'xml');
             } elseif (preg_match("|type>natural_feature<|", $AddressComponent)) {
                 $AddressComponent = '<result>' . $AddressComponent . '</result>';
                 //get country_code, country_name
                 $cityArray = parent::ExtractWithXpath($AddressComponent, $this->IslandPatterns, 'text', 'first', 'xml');
             } elseif (preg_match("|type>locality<|", $AddressComponent)) {
                 $AddressComponent = '<result>' . $AddressComponent . '</result>';
                 //get country_code, country_name
                 $cityArray = parent::ExtractWithXpath($AddressComponent, $this->CityPatterns, 'text', 'first', 'xml');
             }
         }
         if (empty($cityArray['city_name']) and !empty($cityArray['island'])) {
             $cityArray['city_name'] = $cityArray['island'];
         }
         if (empty($countryArray['country_code'])) {
             $countryArray['country_code'] = 'xx';
         }
         //if city doesn't exist, save it to cities
         $city = City::firstOrNew(['city_name' => $cityArray['city_name'], 'country_code' => strtolower($countryArray['country_code'])]);
         $city->gmaps_status = $dataArray['gmaps_status'];
         $city->gmaps_output = $gmaps_output;
         $city->country_name = $countryArray['country_name'];
         //city_slug
         $slug = new SlugClass();
         $city->city_slug = $slug->slugify($cityArray['city_name']);
         $city->save();
         //save foreign key in addresses
         $address->city_id = $city->id;
         $address->save();
     }
 }
开发者ID:jedlicka82,项目名称:pragueairport,代码行数:52,代码来源:CitiesScraper.php


注:本文中的app\City::firstOrNew方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。