[ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => ['cabinet','change-password'], 'allow' => true, 'roles' => ['@'], ], ], ], ]; } public function actionCabinet() { $model = $this->findModel(Yii::$app->user->identity->id); if ($model->load(Yii::$app->request->post()) && $model->validate()) { $model->save(); } return $this->render('cabinet', [ 'model' => $model ]); } public function actionIndex() { $dataProvider = new ActiveDataProvider([ 'query' => News::find()->where(['is_active'=>1]), 'pagination' => [ 'pageSize' => 16, ], ]); return $this->render('index',[ 'dataProvider' => $dataProvider ]); } public function actionView($translit) { $activeNews = $this->findModel($translit); $next_news = News::find()->where(['is_active'=>1])->andWhere('id > :id',[':id' => $activeNews->id])->one(); $prev_news = News::find()->where(['is_active'=>1])->andWhere('id < :id',[':id' => $activeNews->id])->one(); return $this->render('view', [ 'model' => $activeNews, 'next_news' => $next_news instanceof News ? $next_news : '', 'prev_news' => $prev_news instanceof News ? $prev_news : '' ]); } protected function findModel($id) { if (($model = Accounts::findOne(["id"=>$id])) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } public function actionChangePassword(){ $form = new ChangePasswordForm(); if ($form->load(Yii::$app->request->post()) && $form->validate()) { $model = Accounts::findOne(Yii::$app->user->identity->id); $model->load(Yii::$app->request->post(), 'ChangePasswordForm'); $model->save(); return $this->redirect(['cabinet']); } else { return $this->render('change-password', [ 'model' => $form ]); } } }