Пример #1
0
 /**
  * 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]);
     }
 }
Пример #2
0
 /**
  * @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]);
 }