【问题标题】:Relation between 3 Models in Laravel 5.1 ("like many-to-many-through")Laravel 5.1 中 3 个模型之间的关系(“像多对多通过”)
【发布时间】: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 还很陌生,所以请善待我 ;)

【问题讨论】:

标签: laravel laravel-5 laravel-5.1


【解决方案1】:

最好先定义两个表之间的关系,然后交替定义另一个表。你可以阅读这篇文章。或许对你有帮助 three-way-pivot-table-in-eloquent

【讨论】:

  • 谢谢@user2480902 - 我已经在调查那个帖子了。最后,我添加了另一个模型和表格,它连接了用户、学校和领域(通过 schools_pivot 表格)并通过预先加载来利用新的关系。
猜你喜欢
  • 1970-01-01
  • 2021-05-16
  • 2016-02-21
  • 1970-01-01
  • 2020-03-27
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
相关资源
最近更新 更多