К примеру есть таблица связей, которая содержит несколько полей, id записи и id тега. Соответственно связь модели записей будет выглядеть примерно так:

'postsTagRelations' => array(self::HAS_MANY, 'PostsTagRelations', 'postsId'),

При выводе списка свзей (записей):

var_dump($model->postsTagRelations);

Получаем ошибку: Invalid argument supplied for foreach()

А все дело в том, что в таблице связей нет первичного ключа (PK), как оказывается Yii этого не любит. Добавляем первичный ключ (PK) и все заработает.

Естественно таблицы без PK могут быть использованы, но не в данном случае.