Laravel 5.1中的3个模型之间的关系(“像多对多”一样)

时间:2015-07-21 15:08:57

标签: laravel laravel-5 laravel-5.1

我正在为考试开发一个简单的学校管理应用程序,到目前为止,学校模型与 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都很陌生,所以请善待我;)

1 个答案:

答案 0 :(得分:0)

最好定义两个表之间的关系,然后交替另一个表。你可以阅读这个艺术。也许它会帮助你 three-way-pivot-table-in-eloquent