在Laravel中使用哪个关系?

时间:2018-11-02 23:18:50

标签: laravel laravel-5

在Laravel中使用哪个关系将两个表绑定到第三个表?

可以将Doctor分配给某些Center时。中间表将为:

doctor_id | center_id

在这种情况下如何在Laravel中创建模型?

2 个答案:

答案 0 :(得分:2)

您不需要中间表的模型,只需使用Attach

示例:

$center = Center::create();
$doctor = Doctor::find(1);
$doctor->centers()->attach($doctor->id);

这是一个非常简单的示例,但应为您提供有关如何实现它的想法。

所有这些当然都需要您建立具有正确的多对多关系的Center和Doctor模型

Doctor.php 模型:

public function centers()
{
    return $this->belongsToMany(Doctor::class);
}

有关更多信息,请参见documentation

您显然可以创建一个名为DoctorsCenter的模型,并在需要附加关系时手动执行此操作。

DoctorsCenter::create(['center_id' => $center->id, 'doctor_id' => $doctor->id]);

我认为这样做没有任何正当理由,因此不推荐这样做。

答案 1 :(得分:-1)

您可以使用Laravel的 hasMany belongsTo 关系。 有关详细信息,请参见laravel documentation