【发布时间】:2015-04-13 21:15:04
【问题描述】:
我正在尝试在 Laravel 的一些急切加载中使用数据。
我有一个“传感器”表,在另一个表中有许多“测量值”。
我需要每小时检查一次传感器的每个测量值。当我这样做时,它会保存在“sensors.last_checked_measurement”中检查的测量的最后一个 ID
$sensors = Sensor::with(array('measurements' => function($query) {
$query->where('id', '>', SENSOR.LAST_CHECKED_MEASUREMENT); // <-- in between data
}))->get();
你可能知道,这个翻译成
"select * from 'sensors'"
"select * from `measurements` where `measurements`.`sensor_id` in (?, ?) and `id` > ?"
如果 Laravel 可以使用第一个查询的结果来获取下一个查询的 sensor_id,也许可以做到,对吧?
所以我的问题:
如何在急切加载中使用“SENSOR.LAST_CHECKED_MEASUREMENT”?
【问题讨论】:
-
第一个代码块不是做你想做的吗?您能否准确说明您要达到的目标?
-
SENSOR.LAST_CHECKED_MEASUREMENT 它应该在“传感器”的表内,直到我在 with() 之后得到 get() 它才能使用。
标签: php laravel eager-loading