php - Laravel 8 - 在两个日期之间的一段时间内按月计算重复值
问题描述
我正在使用 Laravel 8 并陷入创建自定义查询返回客户端数据,每个客户端按月访问次数首先这是表结构
客户表有 id 和 name,....等
报告表有 id 、 report_date 和 city 等
report_details 有 id、report_id、client_id、...等
Report 和 report_details 之间的关系是一对一的
我在报告模型中创建一个关系如下
public function reportDetails() {
return $this->hasOne(reportDetails::class, 'report_id');
}
我想在两个日期之间执行查询,例如在 01-01-2021 和 25-03-2021 之间生成一个 JSON 数组,每个对象都有以下键
client_id、client_name、month、visits_count_by_month
我希望得到以下结果
[
{
"client_id": 2,
"client_name": "John",
"client_visits: [
"Jan": 5,
"Feb": 2,
"March": 0
]
},
{
"client_id": 5,
"client_name": "Mark",
"client_visits: [
"Jan": 2,
"Feb": 0,
"March": 0
]
}
]
我编写了以下查询,但我不知道如何自定义它并将其与第三个表客户端链接
$reports = Report::whereBetween('report_date', [$start_date, $end_date])->get();
解决方案
推荐阅读
- python - 需要正则表达式或数据来切片代码和处理引号
- kotlin - 使用依赖注入编译问题
- r - 使用 df 作为 .l 输入参数时 purrr::pmap 的正确语法
- c - Windows 上的静态 libpixman-1.a 链接错误
- c++ - 什么时候模板参数包被推断为空?
- scheme - 如何将 trien-label 附加到 trien-children?
- jquery - 调整大小后获取窗格大小
- azure - 错误:com.microsoft.azure.storage.StorageException 引起的 java.io.IOException:Blob 哈希不匹配
- c# - 给定的程序集名称无效 Type.GetType() 不起作用
- javascript - 使用 JavaScript 设置 Content-Transfer-Encoding 标头