javascript - 如何解决 PHP Laravel 项目的语法错误或访问冲突?
问题描述
我有两个表,分别是声明表和声明类型表。目前,我想在 claim_type 表中获取声明的名称。所以,从Claim表中,我们会得到声明的类型(以id的形式),然后,我们可以得到类型的名称。我已经像这样在 MySQL 工作台中查询过它。
SELECT claim_types.name, count(*), sum(amount) FROM myteduh_v1.claims
join claim_types on claim_type_id = claim_types.id
group by claim_type_id;
当我发布到 PHP 时,查询它如下所示。事实证明有些错误。
$ClaimsType = ClaimType::pluck('name')
->count()
->join('claim_types','claim_type_id','=', 'claim_types.id')
->groupBy('claim_type_id')
->get();
dd($ClaimsType);
$Claims_pie_chart = Charts::create('pie', 'highcharts')
->title('Total Claims Based On Type of Claims')
->labels(['$ClaimsType'])
->values([15,25,50])
->dimensions(1000,500)
->responsive(true);
之后,我想将标签插入$ClaimsType
到标签变量中作为饼图标签。问题是,我在 PHP 控制器中查询数据库的方式是否错误?
解决方案
如果你想在一个查询中使用聚合,你应该DB:raw()
在 select 中使用
$ClaimsType = Claim::select(['claim_types.name', DB:raw('count(*)'), DB:raw('sum(amount)')])
->join('claim_types','claim_type_id','=', 'claim_types.id')
->groupBy('claim_type_id')
->get();
现在您可以使用->toSql()
instad of ->get()
,您将看到该查询与您的原始查询相同。
推荐阅读
- c# - 事件在初始化之前触发?
- javascript - 如何在组件内添加相同的组件
- r - 使用 rvest 或 RSelenium 刮表
- pandas - pypi sas7bdat to_data_frame 对于大数据(5 GB)花费太长时间
- node.js - Discord.js - 创建附加权限的邀请链接
- swift - 初始化期间可编码的默认值
- spring-boot - Spring Boot Eureka - CSS 没有出现在 Kubernetes / Ingress 上
- javascript - 如何在蜘蛛模式下计算纬度 lng?
- cpu - 为什么 Sandy Bridge 微架构中的执行单元连接到调度程序和重新排序缓冲区?
- performance - IIS 托管的 Web 服务会比自托管服务花费更多的时间来响应吗?