public function actionSlug($slug) { $model = Place::find()->where(['slug' => $slug])->one(); if (!is_null($model)) { $gps = $model->getLocation($model->id); return $this->render('view', ['model' => $model, 'gps' => $gps]); } else { return $this->redirect('/user-place/index'); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Place::find()->joinWith('user_place')->where(['user_id' => Yii::$app->user->getId()]); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'place_type' => $this->place_type, 'status' => $this->status, 'created_by' => $this->created_by, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'google_place_id', $this->google_place_id])->andFilterWhere(['like', 'slug', $this->slug])->andFilterWhere(['like', 'website', $this->website])->andFilterWhere(['like', 'full_address', $this->full_address])->andFilterWhere(['like', 'vicinity', $this->vicinity])->andFilterWhere(['like', 'notes', $this->notes]); return $dataProvider; }
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; } } }