/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Version::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } if ($this->created_at) { $query->andWhere('{{%grom_version}}.created_at >= :timestamp', ['timestamp' => $this->created_at]); } $query->andFilterWhere(['{{%grom_version}}.id' => $this->id, '{{%grom_version}}.item_id' => $this->item_id, '{{%grom_version}}.character_count' => $this->character_count, '{{%grom_version}}.created_by' => $this->created_by]); $query->andFilterWhere(['like', '{{%grom_version}}.item_class', $this->item_class])->andFilterWhere(['like', '{{%grom_version}}.version_note', $this->version_note])->andFilterWhere(['like', '{{%grom_version}}.version_hash', $this->version_hash])->andFilterWhere(['like', '{{%grom_version}}.version_data', $this->version_data])->andFilterWhere(['like', '{{%grom_version}}.keep_forever', $this->keep_forever]); return $dataProvider; }
/** * @param $version_id integer * @return bool */ public function checkout($version_id) { /** @var Version $version */ $version = Version::find(['id' => $version_id, 'item_id' => $this->owner->getPrimaryKey(), 'item_class' => $this->owner->className()]); if ($version->restore()) { $this->owner->refresh(); return true; } return false; }
/** * Finds the Version model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Version the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Version::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }