我有两个桌子。
第一张表:
- name_id
- name
第二张表:
- counter_id
- name_id
- counter
并且我通过单击来计算按钮计数(1)。表示如果我单击求和,它将在计数器DB中插入“ 1”最后,我希望结果为
peter 4
sam 3
我的代码是
$data = DB::table('name')
->join('counters', 'counters.name_id', '=', 'name.name_id')
->select('name.name', 'counters.name_id')
->get();
return $data;
并且现在得到结果
[
{
"name": "peter ",
"name_id": 1
},
{
"name": "peter ",
"name_id": 1
},
{
"name": "peter ",
"name_id": 1
},
{
"name": "sam",
"name_id": 2
}
]
您可以通过在laravel上使用collection
来执行类似的操作。
$data = [
[
"name" => "peter ",
"name_id" => 1
],
[
"name" => "peter ",
"name_id" => 1
],
[
"name" => "peter ",
"name_id" => 1
],
[
"name" => "sam",
"name_id" => 2
]
];
collect($data)->groupBy('name_id')->map(function($items) {
return [
'name' => $items[0]['name'],
'total' => count($items)
];
})
我以这种方式解决了
->join('counters', 'counters.name_id', '=', 'name.name_id')
->select('name.name', DB::raw('Count(counters.name_id)'))
->groupBy('name.name')
->get();
```