Yii Framework Forum: аплоад файла - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

аплоад файла Rate Topic: -----

#1 User is offline   maxxdev 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 02-October 09

Posted 02 October 2009 - 06:27 AM

Есть модель.
class Item extends CActiveRecord
{
    public $image;
    // ... other attributes
 
	 public static function model($className=__CLASS__)
         {
             return parent::model($className);
         }
		public function tableName()
         {
             return 'image';   // название нашей таблицы в базе данных
         }

	
    public function rules()
    {
        return array(
            array('image', 'file', 'types'=>'jpg, gif, png'),
        );
    }
}

Есть таблица image ссо следующими полями:
name, size, type.
Есть контроллер
class ItemController extends CController
{
    public function actionCreate()
    {
        $model=new Item;
        if(isset($_POST['Item']))
        {
            $model->attributes=$_POST['Item'];
            $model->image=CUploadedFile::getInstance($model,'image');
            if($model->save())
            {
		$model->image->saveAs('c:/temp/'.$model->image->name);
              // redirect to success page
            }
        }
        $this->render('create', array('model'=>$model));
    }
}

После исполнения скрипта, добавляется запись в Бд но с пустыми данными. Потому что значения(name, size ...)
находятся в $model->image->name и $model->image->size.
Получется нужно делать
$model->size = $model->image->size; 
чтобы получить значения и занести их в Бд или есть другой способ занести $model->image->size; в таблицу image в поле size?
0

#2 User is offline   KJedi 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 381
  • Joined: 19-October 08
  • Location:Nikolaev, Ukraine (Europe)

Posted 04 October 2009 - 02:55 AM

можно переписывать из $model->image->XXX в $model->XXX в методе onBeforeSave модели. Только проверь чтобы сценарий был insert или провеяй не постое ли у тебя file. Потому что onBeforeSave выполняется при каждом сохранении.
А,да, onBeforesave должнео возвращать true чтобы сохранение произошло
Posted Image
My Blog: http://programmersnotes.info/ - tips, design patterns, client and server-side coding, yii articles and simply my experience.

Follow me on twitter: http://twitter.com/KonstantinMirin
Add me to your friends on facebook: http://www.facebook....hp?id=784832902
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users