Laravel 8 与多个表的关系

时间:2021-03-05 08:46:03

标签: laravel eloquent

我为一家汽车修理厂开发一个网络应用程序。

在我的应用程序中,用户可以创建一个干预。一个干预可以有一个或多个操作。一个操作可以有一个或多个Piece(s)干预有1辆汽车

示例:(数字 = ID

  • 干预1
    • 汽车18
    • 操作1
      • 7
      • 12
    • 操作2
      • 4
      • 8
  • 干预2
    • 汽车12
    • 操作5
      • 4
      • 6

这是我的表格:

<头>
干预 操作 一块 汽车
id id id id
car_id 名称 名称 车牌

我不知道在我的模型中使用哪种类型的关系干预操作片断 >).

在我的干预视图中,我需要显示:

  • 所有操作都受到此次干预的影响。
  • 所有部分都受到操作的影响。

我需要帮助在我的模型中建立良好的关系。

3 个答案:

答案 0 :(得分:0)

你可以使用 laravel 的文档:

Eloquent Relationships

答案 1 :(得分:0)

您可以在模型文件(Intervention、Operation、Piece)中尝试此操作。

干预模型

public function operation()
{
    return $this->hasMany(Operation::class);
}

运营模式

public function intervention()
{
    return $this->belongsTo(Intervention::class);
}


public function piece()
{
    return $this->hasMany(Piece::class);
}

件模型

public function operation()
{
    return $this->belongsTo(Operation::class);
}

如果您想设置自己的外键,可以阅读文档https://laravel.com/docs/8.x/eloquent-relationships

答案 2 :(得分:0)

您可以将其用于关系,您在 with 方法的数组参数中的关系,如果您需要检查是否有关系,您可以使用 whereHas 函数

Operator::with(['piece'])->get();