Файл не выбран - Почему?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Файл не выбран - Почему?

Сообщение orkhanalyshov »

Здравствуйте.

Пытаюсь отправить форму, но почему-то вылезает ошибка типа - "Файл не выбран", а хотя файл выбран :)

Model:

Код: Выделить всё

public function rules() {
            return [
                [['file', 'content', 'author', 'email'], 'required'],
                [['content'], 'string'],
                ['email', 'email'],
                [['file'], 'file', 'extensions' => ['jpg', 'jpeg', 'png', 'gif']],
                [['author', 'email', 'link'], 'string', 'max' => 255]
            ];
        }
 
View:

Код: Выделить всё

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
    <?= $form->field($model, 'file')->fileInput(); ?>
    <?= $form->field($model, 'content')->textArea(['rows' => '6']); ?>
    <?= $form->field($model, 'author'); ?>
    <?= $form->field($model, 'email'); ?>
    <?= $form->field($model, 'link'); ?>
    <?= Html::submitButton('Submit', ['class' => 'btn btn-success']); ?>
<?php ActiveForm::end(); ?>
Controller:

Код: Выделить всё

public function actionSend() {
            $model = new UserNews;
            
            if ($model->load(Yii::$app->request->post()) && $model->validate()) {
                
                print_r($model);
                
                die();
                
                return $this->refresh();
            } else {
                return $this->render('send', [
                    'model' => $model,
                ]);
            }
        }    
Помогите, пожалуйста, решить проблему. Спасибо.
С уважением, Орхан Алышов
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Файл не выбран - Почему?

Сообщение orkhanalyshov »

Если отсюда

[['file', 'content', 'author', 'email'], 'required'],

убрать 'file', то все работает. А если я хочу, чтобы файл был обязательным полем?
С уважением, Орхан Алышов
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Файл не выбран - Почему?

Сообщение Loveorigami »

т.е после каждой правки в content Вы будете загружать новый файл?
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Файл не выбран - Почему?

Сообщение Loveorigami »

orkhanalyshov писал(а):Если отсюда

[['file', 'content', 'author', 'email'], 'required'],

убрать 'file', то все работает. А если я хочу, чтобы файл был обязательным полем?
и что приходит в $_POST['file'], который вы делаете обязательным?
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: Файл не выбран - Почему?

Сообщение caHek2x »

эм вы странно файл загружаете ...
model->load и всё ?
Loveorigami писал(а):и что приходит в $_POST['file'], который вы делаете обязательным?
в _POST['file'] точно ничего не будет ... как минимум _POST['UserNews'][...
но опять же файл в post не приходит ...

$model->file = UploadedFile::getInstance($model, 'file');
про вот это вы кажется забыли ...
файл же не в post приходит ... файл же в $_FILES лежит ...

https://yiiframework.com.ua/ru/doc/guid ... le-upload/
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Файл не выбран - Почему?

Сообщение Loveorigami »

Об этом и речь, что $_POST для ['file'] (если так яснее) отсутствует. Для ТС я дал наводку, чтоб он сам к этому пришел.
A так он делает этот атрибут обязательным и удивляется ошибке.
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Файл не выбран - Почему?

Сообщение Loveorigami »

caHek2x писал(а):эм вы странно файл загружаете ...
model->load и всё ?
OFFTOP:
Вполне может быть. Если файл загружать через Elfinder и получать в Input ссылку на него.
https://github.com/MihailDev/yii2-elfin ... le.php#L83
alexvakula
Сообщения: 1
Зарегистрирован: 2016.09.15, 23:06

Re: Файл не выбран - Почему?

Сообщение alexvakula »

Я у себя в контроллере сделал так

Код: Выделить всё

            if ($model->save(false)){
        return $this->redirect(['view', 'id' => $model->id]);}
        } else {
            return $this->render('create', [
                'model' => $model,
                'values' => $values,
            ]);
        }
 Акцент на if ($model->save(false)){}
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Файл не выбран - Почему?

Сообщение maleks »

Loveorigami писал(а):Если файл загружать через Elfinder и получать в Input ссылку на него.
Загружать файл через ElFinder - это уже совсем другая история.

caHek2x, выше ответил что в коде контроллера забыто.
Yii2 universal module sceleton - for basic and advanced templates
Ответить