/** * Updates an existing Post model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $profile = new ProfileForm(); $model = $this->findModel($id); if ($profile->load(Yii::$app->request->post())) { if ($user = $profile->profile()) { return $this->redirect(['view', 'id' => $user->id]); } } else { return $this->render('update', ['model' => $model, 'profile' => $profile]); } }
/** * @param $id * @throws \yii\web\NotFoundHttpException * @throws \yii\web\ForbiddenHttpException * @return string * @todo Необходимо объединить функционал данного экшена с экшеном actionAdd! */ public function actionEdit($id) { $user = User::findOne(['user_id' => $id, 'is_deleted' => false]); if (!$user) { throw new NotFoundHttpException('Пользователь не найден!'); } $canUserDelete = Yii::$app->user->can('userAccess', ['action' => 'edit', 'userId' => $user->getId()]); if (!$canUserDelete) { throw new ForbiddenHttpException('Невозможно выполнить действией!'); } $model = new ProfileForm(); if ($model->load(Yii::$app->request->post())) { $model->setScenario(ProfileForm::SCENARIO_UPDATE_USER); if (!$model->validate()) { Yii::$app->getSession()->setFlash('danger', 'Не корректно введены данные!'); } if ($model->save($user)) { Yii::$app->getSession()->setFlash('success', 'Данные успешно изменены!'); $this->redirect(['/user/view', 'id' => $user->getId()]); } else { Yii::$app->getSession()->setFlash('danger', 'Не возможно изменить данные пользователя!'); } } $model->fillUserData($user); return $this->render('edit', ['model' => $model]); }