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

前端之家收集整理的这篇文章主要介绍了orm – Laravel中的许多关系:belongsToMany()vs. hasManyThrough()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在定义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).

猜你在找的Java相关文章