public static function googlePlaceSuggested($form) { // check if this google place already exists if (Place::find()->where(['google_place_id' => $form['google_place_id']])->exists()) { $model = Place::find()->where(['google_place_id' => $form['google_place_id']])->one(); return $model->id; } else { // otherwise register a new place $model = new Place(); $model->name = $form['name']; $model->place_type = self::TYPE_OTHER; $model->google_place_id = $form['google_place_id']; $model->website = $form['website']; $model->vicinity = $form['vicinity']; $model->full_address = $form['full_address']; $model->created_by = Yii::$app->user->getId(); if ($model->validate()) { // all inputs are valid $model->save(); // add GPS entry in PlaceGeometry $model->addGeometry($model, $form['location']); return $model->id; } else { return false; } } }
/** * Creates a new Place model via Geolocation */ public function actionCreate_geo() { $model = new Place(); if ($model->load(Yii::$app->request->post())) { $form = Yii::$app->request->post(); $model->created_by = Yii::$app->user->getId(); if (!is_numeric($model->place_type)) { $model->place_type = Place::TYPE_OTHER; } if ($model->validate()) { // all inputs are valid $model->save(); // add GPS entry in PlaceGeometry $model->addGeometryByPoint($model, $form['Place']['lat'], $form['Place']['lng']); return $this->redirect(['view', 'id' => $model->id]); } else { // validation failed return $this->render('create_geo', ['model' => $model]); } } else { return $this->render('create_geo', ['model' => $model]); } }