Yii Пример модели для сохранения картинки

пример валидации для формы здесь

<?php

class Image extends CActiveRecord
{
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

//    public $name;
//	public $message_id;
//
//	public $width; //высота
//	public $height; //ширина

	// здесь определяем путь до директории
	// относительно корня
	protected $_dirpath='images/';

	public function rules() // формальная валидация
	{
		return array(
			array('name', 'length', 'min'=>10, 'max'=>200),
			array('message_id','numerical'),
			array('width','numerical'),
			array('height','numerical'),
		);
	}

	/**
	 * возвращаем имя таблицы БД для данной модели
	 */
	public function tableName()
	{
		return '{{image}}';
	}

//	cледующий метод отвечает за сохранение новой картинки в папку
//	и добавление метаинформации об этой картинке в базу
//      - входным параметром является значение полученное с помощью
      //   CUploadedFile::getInstance($message, 'image');
	/**@param $mid - id сообщения - к которому прикреплена запись
	 * @param $message - сформированная модель сообщения  - в image уже лежит объект

	 */
    // запоняет поля и сохраняет модель
	public  function addImage($message, $mid)
	{
		// сохраняем файл
		$name = sha1(uniqid()); // получаем  хэш от случайного значения
		$ext = CommonLib::getExt($message->image->name);
		$name = $name . '.' . $ext; // получаем расширение
		$message->image->saveAs('images/' . $name);// сохраняем файл в указанну директорию

		// далее работаем с БД
		$this->name = $name;
		$this->message_id = $mid;

		$this->setSize(); // запишем размеры картинки
		$this->save();

		return $this; // возвращаем модель наружу
	}

	/**
	* заполняет поля ширины и высоты модели
	 */
	protected function setSize()
	{
        $path = $_SERVER["DOCUMENT_ROOT"] . "/" . $this->_dirpath . $this->name;
        $info = getimagesize($path);

		$this->width = $info[0];
		$this->height = $info[1];

	}

	// это полезно для вывода картинки, прикреплённой к сообщению
	public function  getImageURL()
	{
		return Yii::app()->request->hostInfo . "/" . $this->dirpath . $this->name;
    }

	public function relations() //  задаём отношения с другими классами (User)
	{
		return array(
			'message' => array(self::BELONGS_TO, 'Message', 'message_id'),
		);
	}


}