ошибка finfo_file(…/tmp/…): failed to open stream: Нет такого файла или каталога

Данная ошибка у меня возникла при загрузке картинки и занесении в Базу Данных.

Код контроллера:

Код:

public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if (Yii::$app->request->post()) {
            $model->img = UploadedFile::getInstance($model, 'img');
            if($model->img){
                $model->upload();
            }
            if ( $model->save()) {
                Yii::$app->session->setFlash('success', "Соперник {$model->name} добавлен");
                
                return $this->redirect(['view', 'id' => $model->id]);
            }
        }

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

И возникла она в следствии того отваливалась вторая валидация в $model->save()
Тк фаил загружался и удалялся.
И валидировать уже нечего.

Исправленный код:

Код:

public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if (Yii::$app->request->post()) {
            $model->img = UploadedFile::getInstance($model, 'img');
            if ( $model->save()) {
                Yii::$app->session->setFlash('success', "Соперник {$model->name} добавлен");
            }
            if($model->img){
                $model->upload();
            }
            return $this->redirect(['view', 'id' => $model->id]);
        }

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

Теперь мы сперва записываем данные и уже потом записываем фаил.

Код метода upload:

Код:

public function upload()
    {
        if($this->validate()){
            $path = Yii::getAlias('@webroot') . '/upload/' . $this->img->baseName . '.' . $this->img->extension;
            $this->img->saveAs($path);
            return true;
        }else{
            return false;
        }
    }