Добавить проверку файлов в модель

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
volkoff
Сообщения: 40
Зарегистрирован: 2015.05.26, 17:03

Добавить проверку файлов в модель

Сообщение volkoff »

Допустим есть работающая связка модель+контроллер, которая проверяет некоторую форму и пишет в базу.

Задача: добавить к этой форме инпут файла, который будет проверяться и куда то сохраняться.

во wiew добавляем форму

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

        <div class="form-group">
            <?php echo $form->label($model,'image'); ?>
            <?php echo $form->fileField($model,'image' , array( 'class' => 'form-control')) ?>
        </div>

в модель добавляем правило и public $image

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

array('image', 'file', 'types'=>'jpg, gif, png' , 'wrongType' => 'Не тот тип'), 
В контроллере, по инструкции, после добавления атрибутов добавляем строку

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

$N->attributes=$_POST['Blog'];
$N->image=CUploadedFile::getInstance($N,'image'); 

И , собственно, я не могу пройти валидацию. ВЫлетает ошибка

Картинка cannot be blank

Куда копать ?

Спасибо
Аватара пользователя
volkoff
Сообщения: 40
Зарегистрирован: 2015.05.26, 17:03

Re: Добавить проверку файлов в модель

Сообщение volkoff »

UPD:

есть такое подозрение, что getInstance как то не так отрабатывает. Если, после

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

$N->attributes=$_POST['Blog']; 
в $N->image лежит имя файла, то после

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

$N->image=CUploadedFile::getInstance($N,'image');   
там уже не лежит ничего


Может надо как то по другому атрибут image добавить в модель, чтоб getInstance принимая параметр image, что то полезное делал ?
Аватара пользователя
Mr.Klaus
Сообщения: 9
Зарегистрирован: 2015.06.17, 14:58

Re: Добавить проверку файлов в модель

Сообщение Mr.Klaus »

У вас в $_FILES картинка появляется? Ну а ругается на cannot be blank, очевидно, потому что правило "required" для поля с картинкой установлено. А зачем отдельно объявляете свойство public $image?
Аватара пользователя
volkoff
Сообщения: 40
Зарегистрирован: 2015.05.26, 17:03

Re: Добавить проверку файлов в модель

Сообщение volkoff »

Mr.Klaus писал(а):У вас в $_FILES картинка появляется? Ну а ругается на cannot be blank, очевидно, потому что правило "required" для поля с картинкой установлено. А зачем отдельно объявляете свойство public $image?

Попали почти в десятку)
$_FILES вообще пустой приходил. Косяк был в том, что забыл для формы прописать

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

 'htmlOptions' => array('enctype' => 'multipart/form-data') 
Ответить