orm - Laravel中的多对多关系:belongsToMany()与hasManyThrough()

标签 orm laravel laravel-4 relationship eloquent

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

例:UserAccountAccount_User
因此,用户通过Account_User表与Account有多对多关系。除了仅是定义具有相关帐户的相关用户的数据透视表之外,它还存储了Account_User.role字段,该字段确定给定用户在给定帐户中的角色。

使用User belongsToMany() AccountUser hasManyThrough() Account Account_User意味着什么?还是基本相同?

在确定方法时,我想我应该对反向关系定义使用相同的方法。

最佳答案

假设您有两个模型,我们分别称为AB:

如果A可能包含一项以上的B
并且
如果B可能包含一项以上的A(就像博客文章/标签一样)
您必须使用belongsToMany();

现在假设您有3个模型,ABC
AB相关,而BC相关。但是您需要访问所有与C相关的A(通过B),然后您需要使用hasManyThrough()(就像countries-> users-> posts一样,您需要来自特定post的所有country)
hasManyThrough()并非完全用于多对多关系,它更像是一种捷径。

检查文档链接12(Laravel 4.2)或34(Laravel 5.x)。

关于orm - Laravel中的多对多关系:belongsToMany()与hasManyThrough(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699050/

相关文章:

php - Laravel 5 在 Windows 7 中无法与主机 smtp.gmail.com 建立连接

javascript - 使用 Blade 组件和 javascript

laravel - 如何在 Laravel-4 中包含针对不同环境的自定义配置

python - 在 django ORM 中何时使用或不使用 iterator()

php - Laravel 5.2 - 网络服务问题

php - Laravel 4 中的 MySQL/PHP bool 全文搜索问题

php - Laravel 4 Eloquent 选择

php - CodeIgniter DataMapper ORM 无法实例化模型对象

java - 在没有映射表的情况下存储 JSP HashMap?

php - Laravel Eloquent 困难关系查询