use*_*500 4 php mysql laravel eloquent
我有一个与表Quotes具有一对多关系的QuoteDetails表。
表结构如下所示:
return $this->quotes->with('quotedetails')
->orderBy('created_at', 'DESC')->paginate(10);
Run Code Online (Sandbox Code Playgroud)
结果是:
{
"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
}
Run Code Online (Sandbox Code Playgroud)
我想包括的总和quotedetails.total而不是QuoteDetails行的完整列表。我不确定该怎么做。
这是我在模型(Quotes)中的查询方式
public function quotedetails(){
return $this->hasMany('App\Models\QuotesDetail', 'quotes_id', 'id');
}
Run Code Online (Sandbox Code Playgroud)
我如何获得total总和。
这是我期望的输出
{
"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
}
Run Code Online (Sandbox Code Playgroud)
$query->withCount([
'quotedetail AS quotesum' => function ($query) {
$query->select(DB::raw("SUM(total) as quotesum"));
}
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |