Последняя стабильная версия: 1.1.10

Рецепты

Система Orphus

Связь не по первичному ключу в MyISAM

При использовании InnoDB или другой базы с правильно выставленными внешними ключами, Yii отлично определяет нужные поля для связей типа HAS_MANY. Если же используется MyISAM, в котором поддержки внешних ключей нет, или view, необходимо задать их в коде:

class MyModel extends CActiveRecord
{
    public function getTableSchema()
    {
        $table = parent::getTableSchema();
 
        $table->columns['fk_column_name']->isForeignKey = true;
        $table->foreignKeys['fk_column_name'] = array('MyRelatedModel', 'related_model_fk');
 
        return $table;
    }
}

Полезные ссылки