我有三张相连的桌子,我很迷恋雄辩的关系。
我需要帮助来认识我的关系类型。我用的是拉弗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/

10-09 17:40