Алиасы моделей в Yii

При работе с моделями, yii сам формирует алиасы для таблиц. Для обычных запросов это t0, t1, t2, t3 и т.п. В отношениях алиас для связанной таблицы — это название отношения. Но для меня это не очень удобно, т.к иногда взглянув на сложный запрос в профайлере сложно понять что к чему. Поэтому я устанавливаю для всех моделей алиас равный названию таблицы. Казалось бы просто в методе init() или __construct() нужно вызвать setTableAlias() и передать ему $this->tableName(), но почему у меня так не удалось сделать, я не стал с этим разбиратся и устанавливаю алиас таблицы через defaultScope() моей базовой модели.

class BaseModel extends CActiveRecord { 
    ...
    public function defaultScope() {
        return array(
            'alias' => $this->tableName(),
        );
    }
    ...
}

Самое главное помнить, что если вы захотите использовать в какой-то модели defaultScope(), то надо смержить с базовым чтобы не утратить данное поведение, CMap::mergeArray() в помощь)

Отношения, связь не по первичному ключу

При использование отношений в ActiveRecord связь по умолчанию устанавливается по первичному ключу, но бывает необходимость установить связь по другому полю. Для этого третий параметр(внешний ключ) в описание отношения оставляем пустой строкой и описываем связь через ‘on’
Чтобы не придумывать пример из головы, его любезно предоставил, из рабочего проекта,rmpic30 из конференции yii@jabber.ru, автор проекта http://itmages.ru:

'comments'=>array(self::HAS_MANY, 'Comments', '', 
    'on'=>'`comments`.`tid` = `t`.`tid`', 'order'=>'comments.created DESC'),

update 18-06-2011: в описание связи, `comments` — это название отношения, если у вас для модели не был задан другой алиас.

Обращение к атрибуту модели, как к элементу массива

Часто стал встречать, не понимание, в вопросе обращения к атрибутам модели в AR.
Если ваша модель унаследована от класса CActiveRecord, то к атрибуту можно обратится, как к элементу массива.
Пример:

$page = Page::model()->findByk(1);
echo $page->id . ' ' $page->title;
echo $page['id'] . ' ' . $page['title'];