我在这里发布完全相同的问题:
通过选项有什么以及如何帮助我们实现多对多关系?
答案 0 :(得分:1)
'through'在两个表之间创建一个关系,这两个表没有通过外键链接,而是通过中间表链接。例如,让我们假设我有3个模型:组,用户和评论。关系就像这样:
组---(的hasMany)--->用户----(的hasMany)----->注释
。组和注释不是由外键链接的,但使用“trough”它们就像它们一样。这当然意味着我们可以在关系查询中享受AR的所有好处。例如,您可以通过以下方式获取属于某个组的用户的所有评论:
$group->comments;
在这里,您可以找到更详细(但可能更具技术性)的解释:http://www.yiiframework.com/doc/guide/1.1/en/database.arr
作为建议,我强烈建议在此处使用预先加载。解释原因有点大,但是如果你使用它,你将避免AR执行指数数量的连接查询。