【发布时间】:2014-04-14 09:20:05
【问题描述】:
知道为什么以下代码正常工作,返回带有传感器和测量的设备
public function getLastMinutes($device_id,$sensor_id,$minutes = 10) {
...
$devices = Auth::user()->devices()->where("device_id",$device_id)->with(array('sensors.measurements' => function($query) use ($minutes,$sensor_id) {
$date = new DateTime;
$date->modify(-1*$minutes.' minutes');
$formatted_date = $date->format('Y-m-d H:i:s');
$query->where('measurements.created_at','>=',$formatted_date);
}))->get()->toArray();
return Response::json($devices);
...
但是当我添加第二个 where("sensor_id",$sensor_id) 时,返回的 json 对象的测量值会消失
public function getLastMinutes($device_id,$sensor_id,$minutes = 10) {
...
$devices = Auth::user()->devices()->where("device_id",$device_id)->with(array('sensors.measurements' => function($query) use ($minutes,$sensor_id) {
$date = new DateTime;
$date->modify(-1*$minutes.' minutes');
$formatted_date = $date->format('Y-m-d H:i:s');
$query->where("sensor_id",$sensor_id)->where('measurements.created_at','>=',$formatted_date);
}))->get()->toArray();
return Response::json($devices);
...
我有什么遗漏吗?
感谢您的帮助!
【问题讨论】:
-
$sensor_id定义在哪里? -
我已经更新了代码,所以更清楚了,反正 $sensor_id 定义明确没问题,实际上在这两种情况下都会返回传感器对象
-
@SimonBennett 谢谢你的建议。