Задать вопрос
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.

Проблема проверки передачи изображения. Глюк YII?

Версия: 1.1.10

Простая форма заливки фотографии. (_form.php)

Вид:
 <div class="row">
  <?php echo $form->labelEx($model,'foto'); ?>
   <?php  echo $form->fileField($model,'foto',array()); ?>
  <?php echo $form->error($model,'foto'); ?>
 </div>

В модели 'foto' — это строка

Выбираем изображение и пробуем сохранить.
Вот так не работает:

В контроллере функция actionUpdate


if ( $model->foto!='')
   {
   
   $fname='123.jpg';
   $img=CUploadedFile::getInstance($model,'foto'); 
   $model->foto=$fname;
   
   }


Вот так работает:

if ($_FILES['Pilgrims']['name']['foto'])
   {
   
   $fname='123.jpg';
   $img=CUploadedFile::getInstance($model,'foto'); 
   $model->foto=$fname;
   
   }


Как так получается, что $model->foto пустое, но потом из него же через CUploadedFile файл спокойно сохраняется? При дампе $model->foto равно ' '
  • Вопрос задан
  • 4557 просмотров
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
sdevalex
@sdevalex
Поле foto должно быть виртуальным:
class Item extends CActiveRecord
{
  public $foto;
}


$model->foto = CUploadedFile::getInstance($model,'foto'); 
$model->photoFile = '123.jpg';


А в моделе:
public function afterSave()
{
$this->foto->saveAs('/path/to/upload/folder/'. $this->photoFile);
}
Ответ написан
Ваш ответ на вопрос

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

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