【发布时间】:2021-08-17 22:44:40
【问题描述】:
我正在尝试从某个记录器在某个时间跨度之间获取所有测量值。
如果我删除查询的“->wherebetween()”部分并查看结果,那么我将获得该记录仪的所有传感器以及该传感器的所有相关测量值。
但我无法在关系上执行中间关系。
在控制器中查询
public function getChart(Request $request) {
$sensorCollection = Sensor::where('recorder_id', $request->recorder_id)
->with('getMeasurementsRelation')
->wherebetween('getMeasurementsRelation', function ($query) use ($request) {
return $query->wherebetween('timestamp',[$request->start_chart, $request->end_chart]);})
->get();
}
传感器模型中的关系
public function getMeasurementsRelation() {
return $this->hasmany('App\Models\measurement', 'sensor_id', 'id');}
【问题讨论】:
-
你能贴出 start_chart 和 end_chart 的值格式是什么。也就是 timestamp 是 timestamp 类型
-
@JohnLobo start_chart 和 end_chart 值通过 字段提供,格式为“YYYY-mm-dd”示例 =“2021-05-10”。 “timestamp”列属于“timestamp”类型。
-
检查我的答案
标签: mysql laravel eloquent laravel-8 eloquent-relationship