我有一个表 Quotes
,它与 QuoteDetails
表具有一对多关系。
表结构如下:
return $this->quotes->with('quotedetails')
->orderBy('created_at', 'DESC')->paginate(10);
结果:
{
"current_page":1,
"data":[
{
"id":2,
"subject":"demo",
"quotedetails":[
{
"id":2,
"quotes_id":2,
"description":"testing data",
"total":1080
},
{
"id":3,
"quotes_id":2,
"description":"testing",
"total":180
}
]
},
{
"id":1,
"subject":"demo",
"quotedetails":[
{
"id":1,
"quotes_id":1,
"description":"data",
"total":360
}
]
}
],
"per_page":10,
"prev_page_url":null,
"to":2,
"total":2
}
我想包括 quotedetails.total
的总和,而不是 QuoteDetails
行的完整列表。我不确定应该怎么做。
这是我在模型中查询的方式 (Quotes
)
public function quotedetails(){
return $this->hasMany('App\Models\QuotesDetail', 'quotes_id', 'id');
}
我如何获得总计
总和。
这是我期望的输出结果
{
"current_page":1,
"data":[
{
"id":2,
"subject":"demo link data",
"quotesum": 1260
},
{
"id":1,
"subject":"demo",
"quotesum": 360
}
],
"per_page":10,
"prev_page_url":null,
"to":2,
"total":2
}
最佳答案
$query->withCount([
'quotedetail AS quotesum' => function ($query) {
$query->select(DB::raw("SUM(total) as quotesum"));
}
]);
关于php - laravel Eloquent 地从链接表中求和多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47290320/