使用通过活动记录从多对多中间表中抓取数据

时间:2011-12-29 23:11:45

标签: php activerecord many-to-many yii

我在这里发布完全相同的问题:

http://www.yiiframework.com/forum/index.php?/topic/25763-grab-data-from-many-to-many-middle-table-using-through/

通过选项有什么以及如何帮助我们实现多对多关系?

1 个答案:

答案 0 :(得分:1)

'through'在两个表之间创建一个关系,这两个表没有通过外键链接,而是通过中间表链接。例如,让我们假设我有3个模型:组,用户和评论。关系就像这样:

组---(的hasMany)--->用户----(的hasMany)----->注释

组和注释不是由外键链接的,但使用“trough”它们就像它们一样。这当然意味着我们可以在关系查询中享受AR的所有好处。例如,您可以通过以下方式获取属于某个组的用户的所有评论:

$group->comments;

在这里,您可以找到更详细(但可能更具技术性)的解释:http://www.yiiframework.com/doc/guide/1.1/en/database.arr

作为建议,我强烈建议在此处使用预先加载。解释原因有点大,但是如果你使用它,你将避免AR执行指数数量的连接查询。