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