认识到laravel的关系

时间:2014-07-09 16:28:33

标签: mysql database laravel relationship

我有3个链接表,我很失落,有着雄辩的关系。

我需要帮助来识别我的关系类型。我使用Laravel 4.1

收购表:

#id
date

传感器表:

#id
name

acquisition_sensor 表:

#id
acquisition_id
sensor_id
depth
value

事实上,1次收购可能有很多深度和不同的价值。

我搜索链接表格的方法并使用传感器模型,如:

Sensor::find(1)->acquisitions->count();

Sensor::find(1)->sensor_acquisition->get();

我实际上是使用查询生成器来完成它,但我认为有一种方法可以更有效地使用它,而且具有雄辩的功能!

1 个答案:

答案 0 :(得分:1)

您将要在您的Eloquent模型中建立多对多关系。

Sensor.php(型号)

public function acquisitions()
{
    return $this->belongsToMany('Acquisition', 'acquisition_sensor', 'acquisition_id', 'sensor_id');
}

Acquisition.php(模态)

public function sensors()
{
    return $this->belongsToMany('Sensor', 'acquisition_sensor', 'acquisition_id', 'sensor_id');
}

您可以在此处详细了解多对多的Eloquent关系http://laravel.com/docs/eloquent#many-to-many


如果你想运行你在问题中描述的雄辩查询,那么你可以这样做:

Sensor::find(1)->acquisitions()->count();

如果您正在进行链接,请务必将()添加到收购中。