/** * @param integer $region_id * @param string $city_name * @throws Exception * @return static */ public static function upsert($attributes) { if (isset(self::$_models[$attributes['city_id']])) { return self::$_models[$attributes['city_id']]; } else { $model = City::findOne($attributes['city_id']); if (!$model) { $model = new City(); } $model->setAttributes($attributes); $model->save(false); return self::$_models[$attributes['city_id']] = $model; } }