0
我想弄清楚從數據庫中檢索結果的最佳方法,使created_at
是最近的,並且還檢查另一個值(在這種情況下Temps - >值)相匹配的特定標準..Laravel雄辯尋找最大(日期)與額外的搜索條件
例如(縮寫一些信息)
LOCATIONS
+----+---------+
| ID | CITY |
+----+---------+
| 1 | DALLAS |
| 2 | CHICAGO |
| 3 | ATLANTA |
+----+---------+
滕普斯
+----+-------+----------+------------+
| ID | VALUE | CITY_ID | CREATED_AT |
+----+-------+----------+------------+
| 1 | 70 | 1 | 2010 |
| 2 | 95 | 1 | 2015 |
| 3 | 90 | 2 | 2010 |
| 4 | 80 | 2 | 2015 |
| 5 | 99 | 3 | 2015 |
+----+-------+----------+------------+
我的位置模型。
class Location extends model
{
...
public function latestValue()
{
return $this->hasOne('App\Temp')->latest();
}
在這種情況下,我只想其中最新溫度讀數> 90的位置..
在若有
$highTemps = Location::with('latestValue')->get();
我的控制器,而無需通過每個城市迭代明確地說,是否有辦法調整我的雄辯關係,甚至是使用收集方法來過濾結果?我看過filter()
但我不確定如何在關係上使用它。特別是如果你想深入過濾2-3個關係。 (想象一下,我將從國家 - >國家 - >位置 - >臨時工 - > latestValue等)
讓初始查詢篩選結果將會很棒。但我無法弄清楚groupBy()
和max()
和having()
等的組合,以使雄辯的陳述有效。