【问题标题】:Grabbing data from Many-to-Many middle table using through active record使用通过活动记录从多对多中间表中获取数据
【发布时间】:2011-12-29 23:11:45
【问题描述】:

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

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

through 选项在多对多关系中有何帮助以及如何帮助我们?

【问题讨论】:

    标签: php activerecord many-to-many yii


    【解决方案1】:

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

    群组---(hasMany)--->用户----(hasMany)----->评论。

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

    $group->comments;
    

    您可以在此处找到更详细(但可能更具技术性)的说明:http://www.yiiframework.com/doc/guide/1.1/en/database.arr

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多