我有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();
我实际上是使用查询生成器来完成它,但我认为有一种方法可以更有效地使用它,而且具有雄辩的功能!
答案 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();
如果您正在进行链接,请务必将()
添加到收购中。