0
我已經做了大量的搜索這個主題,但無法找到一個清晰和簡明的答案,是否有可能在雄辯。雄辯關係上的聚合函數
說例如我們有兩個模型製造商&汽車與一對多的關係。
Manufacturer.php
public function cars()
{
return $this->hasMany('App\Car');
}
Car.php
public function manufacturer()
{
return $this->belongsTo('App\Manufacturer');
}
用普通的舊SQL我可以有效地做到以下幾點:
SELECT
m.id,
m.slug,
m.title,
m.content,
ROUND(AVG(NULLIF(c.status ,0))) AS 'score'
FROM
manufacturers m
INNER JOIN cars c ON c.manufacturer_id = m.id
GROUP BY m.id
我希望做口才相同。我嘗試了各種各樣的東西,但似乎無法看到如何在汽車狀態欄中包含AVG功能。
我可以得到所有的製造商及其相關的汽車行駛如下:
$manufacturers = App\Manufacturer::with('cars')->get();
但是,如果我的AVG添加到查詢事件與DB::raw
它抱怨說,列不存在。是否可以在Eloquent中以這種方式檢索AVG列作爲結果的一部分,或者是否必須在檢索完成後單獨完成AVG列。
我當然可以用數據庫查詢生成器語法重寫查詢,但對於這種特殊用例,它有點直觀。
另外我也意識到Eloquent只是數據庫流利語法的包裝,但我想知道是否可以在雄辯類型語法中做到這一點。
啊對,謝謝我看到了。基本上默認查詢生成器的語法與「與」投入也急於加載。太感謝了。 – jiraiya