Ballly
@Ballly

Ошибка «Call to a member function saveAs() on a non-object» в чем ошибка?

Всем здравствуйте! Подскажите пожалуйста из-за чего выходит ошибка "Call to a member function saveAs() on a non-object", данная ошибка указывает на то, в моем случае ошибка показывает, что при сохранении формы не прикреплен документ, с прикрепленным документов сохранение проходит нормально.
5c34cf1339f9b489470907.png
Контроллер
public function actionCreate()
{    
    $model = new Material();

    if ($model->load(Yii::$app->request->post())){
        $model->alias = str2url($res . ' ' . $model->name); 
        $model->docFile = UploadedFile::getInstance($model, 'docFile'); // Загрузка документа
        if ($model->validate()) {
            if ($model->save(false)) {
                $model->gallery = UploadedFile::getInstances($model, 'gallery');
                $model->uploadGallery();
            }
            if($model->path = $model->upload()) { // Присваиваем путь возвращаемый upload()
                if ($model->save(false)) {
                    // return $this->redirect(['view', 'id' => $model->id]);
                }
            }
            Yii::$app->session->setFlash('success', "Материал {$model->name} добавлен");
            return $this->redirect(['view', 'id' => $model->id]);
        }
    }
    return $this->render('create', [
        'model' => $model,
    ]);
}

Модель
public function rules()
{
    return [
        [['docFile'], 'file', 'skipOnEmpty' => true, 'extensions' => 'txt, pdf, djvu, doc, docx, xls, xlsx, ppt, pptx, zip, rar, 7z, tiff'],
    ];
}

public function upload()
{    
    if ($this->validate()) {
        $path = $this->processMkDir();
        $fileName = Inflector::slug(pathinfo($this->str2url($this->docFile->baseName), PATHINFO_FILENAME)) . '.' . $this->docFile->extension;
        $this->docFile->saveAs($path . $fileName);
        return $fileName;
    } else {
        return false;
    }
}
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@grinat
Вместо инстанса пришел null https://github.com/yiisoft/yii2/blob/master/framew...
Проверяй его на null
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ballly
@Ballly Автор вопроса
grinat, Вы не могли бы указать или показать на моем примере как реализовать проверку, я так понимаю проверку надо сделать в функции upload в модели, но как ее правильно прописать не пойму, так как я пытался, то у меня пошли только еще новые ошибки связанные с неправильно написанной функцией.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы