【发布时间】:2019-01-22 06:18:37
【问题描述】:
我正在尝试从表中获取以下数据
- 每个日期的注册用户数
- 用户详情
我正在尝试以下脚本来获取它
$users = User::select(DB::raw('count(id) as agents, left(DATE(created_at),10) as registeredDate'))
->whereHas('roles', function($q){
$q->where('name', '=', 'agent');
})
->offset($start)
->limit($limit)
->orderBy($order,'DESC')
->groupBy('registeredDate')
->get();
上面的查询返回每个日期的注册用户数
if($users){
foreach($users as $r){
$nestedData['agents'] = $r->agents;
$nestedData['date'] = date('d M Y',strtotime($r->registeredDate));
$data[] = $nestedData;
}
}
但我也想在同一个查询中获取用户详细信息。我想要的输出是
'data' => [
[
"agents" => "13",
"date" => "12 Jan 2019",
"nested_data" => [
[
'full_name' => 'john',
'status' => 'active',
'email' => 'john@gmail.com',
],
[
'full_name' => 'John',
'status' => 'active',
'email' => 'john2@gmail.com',
]
]
]
]
有人可以指导我如何实现它。我很感激。谢谢
【问题讨论】:
-
您无法获取所有用户数据,例如带有查询的 full_name 包含 groupBy()。
-
你可能会得到所有行,这是因为full_name和status等字段是必需的,并使用foreach构建数组,并分配组的计数