Определение AR-класса


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

    public function tableName()
    {
        return '{{post}}';
    }

    // Если соединения происходят к разным базам
    public function getDbConnection()
    {
        return Yii::app()->getDbCon(get_class($this));
    }

    // Если нужно перекрыть первичный ключ
    public function primaryKey()
    {
        return 'id';
        // Для составного первичного ключа:
        return array('id1', 'id2');
    }

}

Полезные методы, которые можно перекрывать в модели

// методы которые вызываются до и после осуществления проверки:
beforeValidate и afterValidate

// методы которые вызываются до и после сохранения экземпляра AR;
beforeSave и afterSave

// методы которые вызываются до и после удаления экземпляра AR
beforeDelete и afterDelete

// метод который вызывается для каждого экземпляра AR, созданного с использованием new;
afterConstruct

// метод вызывается перед тем, как будет выполнен поисковый запрос (например, find(), findAll()).
beforeFind

// метод вызывается для каждого экземпляра AR, созданного в результате выполнения запроса.
afterFind