Laravel 8-如何从3个表中创建关系

Laravel 8-如何从3个表中创建关系,laravel,Laravel,我有三张桌子: structurals id name indicators id name groupings id structural_id indicator_id 结果: #structural name indicator name indicator name #structuralname indicator name 我使用的方法有很多错误。在这种情况下,指示符可能属于一个或多个结构的。而结构可以有一个或多个指示器 这描述的是一种多对

我有三张桌子:

structurals
  id
  name

indicators
  id
  name

groupings
 id
 structural_id
 indicator_id
结果:

#structural name
  indicator name
  indicator name

#structuralname
  indicator name

我使用的方法有很多错误。

在这种情况下,
指示符可能属于一个或多个
结构的
。而
结构
可以有一个或多个
指示器

这描述的是一种
多对多
关系,其中
分组
只是一个透视表。因此,您应该使用下面的

类指示符扩展模型
{
公共职能结构()
{
返回$this->belongtomany(Structural::class,'groupings');
}
}
类结构扩展模型
{
公共职能指标()
{
返回$this->belongtomany(指示符::class,'groupings');
}
}
文件:


您也可以从
groupings
表中删除
id
列,因为这是不必要的。

谢谢您的评论,太好了。先生,我有一个问题。我想为插入数据(id、结构id、指标id、分数、创建时间)添加一个表,如何处理?(结构名称、指标名称、分数、创建位置)在分组之后,您可以向数据透视表添加其他列,并使用
->withPivot()方法。因为我将根据分组/数据透视表中的日期每天插入分数。根据你的说法,我是使用数据透视表还是创建一个插入计分表?