本文整理汇总了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();
}
}