Laravel 5.1 中 3 个模型之间的关系(“像多对多通过”)
Posted
技术标签:
【中文标题】Laravel 5.1 中 3 个模型之间的关系(“像多对多通过”)【英文标题】:Relation between 3 Models in Laravel 5.1 ("like many-to-many-through") 【发布时间】:2015-10-11 03:16:16 【问题描述】:我正在为考试开发一个简单的学校管理应用程序,到目前为止,我已经在 School 模型和 Field 模型之间建立了一个简单的多对多关系当然还有数据透视表。
现在我想将我的用户模型与它们关联起来,以便我可以查询例如
user 正在 school
学习 field_of_study
最后我希望能够查询例如
有多少用户在学校 XY 学习,或者,
有多少人在研究 Field Z,或者,
有多少人在学校 XY 学习 Field Z。
此外,我希望能够查询给定学校的所有学习领域,反之亦然。
到目前为止我的桌子
表users
:
+------------+---------------------+
| Field | Type |
+------------+---------------------+
| id | bigint(20) unsigned |
| username | varchar(60) |
| password | varchar(60) |
+------------+---------------------+
表schools
:
+------------+---------------------+
| Field | Type |
+------------+---------------------+
| id | bigint(20) unsigned |
| name | varchar(60) |
+------------+---------------------+
表fields
:
+------------+---------------------+
| Field | Type |
+------------+---------------------+
| id | bigint(20) unsigned |
| name | varchar(60) |
+------------+---------------------+
表schools_pivot
:
+------------+---------------------+
| Field | Type |
+------------+---------------------+
| id | bigint(20) unsigned |
| school_id | bigint(20) |
| field_id | bigint(20) |
+------------+---------------------+
不幸的是,我完全不知道如何以这种方式关联三个 Eloquent 模型,并且在网络上找不到任何东西(我可能搜索了错误的术语)。
我对 Laravel 和 Eloquent 还很陌生,所以请善待我 ;)
【问题讨论】:
这可能对你有帮助***.com/questions/39509088/… 【参考方案1】:最好先定义两个表之间的关系,然后交替定义另一个表。你可以阅读这篇文章。或许对你有帮助 three-way-pivot-table-in-eloquent
【讨论】:
谢谢@user2480902 - 我已经在调查那个帖子了。最后,我添加了另一个模型和表格,它连接了用户、学校和领域(通过schools_pivot
表格)并通过预先加载来利用新的关系。以上是关于Laravel 5.1 中 3 个模型之间的关系(“像多对多通过”)的主要内容,如果未能解决你的问题,请参考以下文章