我有三张相连的桌子,我很迷恋雄辩的关系。
我需要帮助来认识我的关系类型。我用的是拉弗4.1
收购表:
#id
date
传感器表:
#id
name
采集传感器表:
#id
acquisition_id
sensor_id
depth
value
事实上,一次采集可能有很多深度和不同的值。
我寻找一种方法链接我的表格并使用传感器模型,如:
Sensor::find(1)->acquisitions->count();
和
Sensor::find(1)->sensor_acquisition->get();
我实际上是用查询构建器来实现的,但是我认为有一种方法可以更有效地使用它!
最佳答案
你会想在你的雄辩模型中建立一种多对多的关系。
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');
}
你可以在这里阅读更多关于多对多雄辩的关系,http://laravel.com/docs/eloquent#many-to-many
如果要运行问题中描述的雄辩查询,则可以这样做:
Sensor::find(1)->acquisitions()->count();
如果正在链接,请确保将
()
添加到采集中。关于mysql - 认识laravel的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24659089/