我有完全相同的问题张贴在这里:
http://www.yiiframework.com/forum/index.php?/topic/25763-grab-data-from-many-to-many-middle-table-using-through/through选项在多对多关系中有什么以及如何帮助我们?
'through'创建两个表之间的关系,这两个表不是由外键连接的,而是由一个中间表连接的。例如,假设我有3个模型:组、用户和评论。关系应该是这样的:
团体——(hasMany)——>用户(hasMany)——>评论。
组和注释不是由外键链接的,但是使用"槽",它们就会像外键一样被链接。这当然意味着我们可以在关系查询中享受AR的所有好处。例如,您可以简单地通过以下命令获取属于某个组的所有用户的评论:
$group->comments;
在这里你可以找到一个更详细(但可能有点技术性)的解释:http://www.yiiframework.com/doc/guide/1.1/en/database.arr
作为一个建议,我强烈建议在这里使用急切加载。解释原因有点大,但是如果您使用它,您将避免AR执行指数数量的连接查询。