Задать вопрос
@Heckfy325
Начинающий программист. Простите за глупые вопросы

Почему не проходит валидация при загрузке файла на сервер?

Здравствуйте, загружаю файл на локальный сервер но валидация не проходит в upload(). Уже пол дня мучаюсь. Вроде указал все верно.

Вот моя форма
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?= $form->field($model, 'file')->fileInput()->label(false) ?>
<?= $form->field($model, 'name')->input('text')->label(false) ?>
<?= $form->field($model, 'phone')->input('text')->label(false) ?>
<?= $form->field($model,'message')->textarea(['class' => 'form-control', 'rows' => '4'])->label(false)?>
<?php ActiveForm::end(); ?>


Контроллер
public function actionSpecification()
    {
        $model = new Specifications();
        if ($model->load(Yii::$app->request->post())) {
            $model->file = UploadedFile::getInstance($model, 'file');
            if ($model->upload()) {

                // file is uploaded successfully

                Yii::$app->session->setFlash('success', 'Is work!');
                return true;
            }
        }
        return $this->render('specification', ['model' => $model]);
    }


Модель
public function upload()
    {
        if ($this->validate()) {
            debug('+++');
            $this->file->saveAs(Yii::getAlias('@frontend/web/files/specifications/'));
            return true;
        } else {
            return false;
        }
    }


Помогите разобраться пожалуйста!
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@rotarepmipoleved
В методе upload() при неудачной валидации, до строки return false;, ознакомтесь с возникшими ошибками:
$this->getErrors()
Это в var_dump / debug - чем обычно пользуетесь для вывода.

Далее отталкиваетесь от характера ошибок.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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