Я хочу обновить загруженное изображение в yii2. Я не знаю, что я должен написать в своем actionUpdate. Я должен отображать старое изображение аватара при вводе обновления. Помогите мне, ребята.

Моя форма yii2

      <?= $form->field($model, 'username')->textInput(['maxlength' => true])?>
<?= $form->field($model, 'email')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'password')->passwordInput(['maxlength' => true]) ?>
<?= $form->field($model, 'avatar')->label(false)->fileInput(['accept'=>'image/*', 'class'=>'btn btn-light image-upload ']) ?>
<?= $form->field($model, 'status')->textInput() ?>
<div class="form-group" style="margin-top: 10px">
    <?= Html::submitButton('Save', ['class' => 'btn btn-light']) ?>
</div>

Мой контроллер действий. Работает четко.

      public function actionCreate()
    {
        $model = new User();
        if ($model->load(Yii::$app->request->post())) {
            $model->created_date = date("Y-m-d H:i:s");
            $model->updated_date = date("Y-m-d H:i:s");
            $model->creator = Yii::$app->user->getId();
            $model->generatePassword($model->password);
            if ($model->save()){
                $model->file = UploadedFile::getInstance($model, 'avatar');
                $model->saveAvatarImage();
                $model->avatar = $model->file->baseName . '.' . $model->file->extension;
              if ($model->save()){
                    return $this->redirect(['view', 'id' => $model->id]);
                }else {
                    return debug($model->errors);
                }
            }else{
                return debug($model->errors);
            }
        }

        return $this->render('create', [
            'model' => $model,
        ]);
    }

Проблема здесь. Я не знаю, что я пишу. Я должен отобразить старую картинку аватара на входе, которая в обновленном виде. Мой контроллер обновлений:

      public function actionUpdate($id)
    {
        $model = $this->findModel($id);
        $oldavatar = $model->avatar;
        if ($this->request->isPost && $model->load($this->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('update', [
            'model' => $model,
        ]);
    }

0 ответов

Другие вопросы по тегам