将表连接到多对多表

时间:2019-07-05 07:08:16

标签: laravel eloquent many-to-many one-to-many laravel-5.7

我有来自商品和公司的多对多表,我想将其与多对多表关联 company_good

+----------------+------------+
|    company_ID    | good_ID |
+----------------+------------+
| 1              |       1    |
| 2              |       1    |
| 2              |       2    |
+----------------+------------+

销售

+----------+----------------+--------------+----------+
|    id    |      date      |  company_id  |  good_id |
+----------+----------------+--------------+----------+
| 1        |  2019-02-01    |      1       |     1    |
| 2        |  2019-02-01    |      2       |     1    |
| 2        |  2019-02-01    |      1       |     1    |
+----------+----------------+--------------+----------+

我想问的是,有没有关于基于laravel规则的销售的命名栏?我所知道的是,何时表posts要将其连接到表users上,表post上的命名应为user_id。但在这种情况下,我该如何命名?

2 个答案:

答案 0 :(得分:0)

首先,您一定要使用Eloquent。

列名称可以是您想要的任何名称。当您设置多对多模型方法时,可以在其中定义相关的列名称

以下是Laravel文档的摘录:

  

除了自定义联接表的名称外,您还可以   通过传递自定义表上键的列名   的相关参数。第三个论点   是您要在其中定义模型的模型的外键名称   关系,而第四个参数是   您要加入的模型:

     

返回$ this-> belongsToMany('App \ Role','role_user','user_id',   'role_id');

更多信息,请访问https://laravel.com/docs/5.8/eloquent-relationships#many-to-many

答案 1 :(得分:0)

我建议在id表中添加company_good列,并将相应的模型命名为CompanyGood,而不是{{1}中的company_idgood_id }表使用sales