예제 #1
0
 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;
         }
     }
 }
예제 #2
0
 /**
  * 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]);
     }
 }