加入收藏 | 设为首页 | 会员中心 | 我要投稿 4S站长网 (https://www.4s3.cn/)- 科技、混合云存储、数据迁移、云上网络、数据计算!
当前位置: 首页 > 编程开发 > Java > 正文

orm – Laravel中的许多关系:belongsToMany()vs. hasManyThrough()

发布时间:2020-11-17 02:43:17 所属栏目:Java 来源:互联网
导读:在定义Laravel中的多对多关系时,使用belongsToMany()或hasManyThrough()有什么区别? 例: 用户 帐户 Account_User 所以,用户通过Account_User表与Account有很多关系.除了定义具有相关帐户的相关用户的数据透视表之外,它还存储一个Account_User.role字段,它确

在定义Laravel中的多对多关系时,使用belongsToMany()或hasManyThrough()有什么区别?

例:
用户
帐户
Account_User

所以,用户通过Account_User表与Account有很多关系.除了定义具有相关帐户的相关用户的数据透视表之外,它还存储一个Account_User.role字段,它确定给定用户在给定帐户中的角色.

使用User belongsToMany()帐户或用户hasManyThrough()帐户Account_User有什么影响?还是这个本质上是一样的?

当决定一个方法时,我想我应该使用相同的方法来进行反向关系定义.

解决方法

假设你有两个模型,我们来调用A和B:

如果A可能有多个B项目,
并且
如果B可能有多个A的项目
(想像博客帖子/标签)
你必须使用belongsToMany();

现在我们假设你有3个模型,A,B和C.

A与B有关,B与C.相关.但您需要访问与A(B以上)相关的所有C,那么您需要使用hasManyThrough()
(想像国家 – >用户 – >帖子,您需要所有来自特定国家/地区的帖子)

hasManyThrough()不是完全意味着许多关系,它更像一个捷径.

检查文档链接,1,2(Laravel 4.2)或3,4(Laravel 5.x).

(编辑:4S站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读