Yii - методы начинающиеся на get/set - "виртуальные атрибуты"

базовая статья = http://www.yiiframework.com/wiki/167/und...

ВНИМАНИЕ: возможно возникновение подобной проблемы.
просто приведу пример модели - в качестве пары методов (один для получения - getAlias, а другой для установки значения - setAlias) которой реализован виртуальный атрибут Alias =

<?php

class Page extends CActiveRecord
{

	/*в качестве правила про верки для
	единственного поля нашей формы установим,
	что длинна сообщения не должна превышать 200 символов*/
	public function rules()
	{
	public static function model($className = __CLASS__)
	{
		return parent::model($className);
	}

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

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

	function attributeLabels()
	{
		return array(
			'verifyCode' => 'Код проверки',
		);
	}

	// виртуальный атрибут для получения значения alias
	function getAlias() // метод будет извлекать некоторое поле связанной модели
	{
		// если известен id связывающий нашу модель с той, где хранится alias
		if ($this->urlalias_id){ // если это не NULL
			$alias = Alias::model()->findByAttributes( // пытаемся подгрузить модель из базы
				array('id' => $this->urlalias_id)); // по-идее она там должна быть
			if ($alias)
				return $alias->alias; // возвращаем поле указанной модели
		}
		else return false;
	}

	// виртуальный атрибут для установки значения alias
	// для работы с передаваемым адрибуту значением мы будем использовать $value
	function setAlias($value) // метод будет извлекать некоторое поле связанной модели
	{
		$result = true; // просто значение по-умолчанию
		if (isset($value)){ // если значение вообще опредлено
            if ($value != ''){// если оно непустое
				// если известен id связывающий нашу модель с той, где хранится alias
				if ($this->urlalias_id){ // если это не NULL
					$alias = Alias::model()->findByAttributes( // пытаемся подгрузить модель из базы
						array('id' => $this->urlalias_id)); // по-идее она там должна быть
				    if ($alias)
					    $alias->alias = $value; // перезаписываем значение пседонима
				}
				else // если с данной страницей ещё не связан не один экземпляр другой модели
				{ // то далее создадим новый экземпляр модели, привязываемой к Page и
					// привяжем его
					$alias = new Alias(); // то создаём новый объект
					// и заполняем его рядом свойств, которые получены через $_GET
					$alias -> urlInfoSet();
					$alias->alias = $value; // опять же- устанавливаем значение
				}
				$result = $alias->save(); // возвращаем признак успешности сохранения модели
            }
		} else {// если значение пустое или вообще не опредлено
			if ($this->urlalias_id){ // если что-то было уже привязано
				$alias = Alias::model()->findByAttributes( // пытаемся подгрузить модель из базы
					array('id' => $this->urlalias_id)); // по-идее она там должна быть
				    if ($alias) // если такая запись реально есть
					    $alias->delete();// удаляем её
		    }
		}
		return  $result; // возвращаем результат
	}
}