public function actionView($id) { $model = Posts::find()->where(['id' => $id])->asArray()->with('user')->one(); $models[0] = Posts::find()->where('id < ' . $model['id'])->select(['id', 'title'])->orderBy('id DESC')->asArray()->one(); $models[1] = Posts::find()->where('id > ' . $model['id'])->select(['id', 'title'])->orderBy('id ASC')->asArray()->one(); if (empty($model)) { throw new NotFoundHttpException('Такой страницы не существует'); } return $this->render('view', ['model' => $model, 'models' => $models]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Posts::find()->with('user'); $query->joinWith('user'); // add conditions that should always apply here $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]]]); $dataProvider->sort->attributes['user'] = ['asc' => ['user.' . \Yii::$app->controller->module->userField => SORT_ASC], 'desc' => ['user.' . \Yii::$app->controller->module->userField => SORT_DESC]]; $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['like', 'title', $this->title]); $query->andFilterWhere(['like', \Yii::$app->controller->module->userField, $this->user]); return $dataProvider; }
/** * Finds the Posts model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Posts the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Posts::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }