Вам на самом деле нужны 3 таблицы (таким образом, дополнительная модель для сводной таблицы), но когда она у вас есть, вы можете использовать обычную функцию отношения yii.
Например, мой проект имеет отношение «многие ко многим» между покупкой и транзакцией (пожалуйста, не спрашивайте, почему :)). Таким образом, есть модель покупки, модель транзакции и модель PurchaseToTransaction, которая устанавливает связи между ними. Я могу просто выполнить транзакции $ oPurchase-> и Yii обработает часть «многие ко многим», используя отношение, оно определяется следующим образом:
'transactions' => array(self::MANY_MANY, 'Transaction', 'PurchaseToTransaction(purchaseId, transactionId)')
Обратите внимание, что для Транзакций применяется то же самое, но наоборот:
'purchases' => array(self::MANY_MANY, 'Purchase', 'PurchaseToTransaction(transactionId, purchaseId)'),
Таким образом, Yii автоматически обрабатывает $ oPurchase-> транзакции и $ oTransaction-> покупки .
В заключение, он действительно может обрабатывать отношения «многие ко многим», используя отношения (по крайней мере, для чтения, для написания вам все еще нужны произвольные решения).