arrays - 在 laravel 中为 morris js 创建数组
问题描述
我很难从表中加载某些数据以获取 json 数组并将其包含到 morris js 甜甜圈中(例如:https ://codepen.io/ncarlucci/pen/JYxQBK )
我想从表中加载列中subscriber
的不同名称type
并计算它们以获得以下数组:
[
{value: 50, label: 'typename1'},
{value: 25, label: 'typename2'},
{value: 25, label: 'typename3'},
],
如果我这样做:
$subscriber = Subscribe::select('type')->get()->groupBy('type')
->map(function($subscribe){
return $subscribe->count();
})->toJson();
我得到以下输出,但它是错误的:
{"company":1,"person":16,"user":6}
解决方案
可能有更好的方法来处理您的案例,但是由于您没有提供有关模型或数据库结构的更多信息,因此应该可以:
$subscriber = Subscribe::select('type')->get()
->groupBy('type')
->map(function($subscribe, $label) {
return ['value' => $subscribe->count(), 'label' => $label];
})
->values()
->toJson();
关键是在map函数内部构建内部数组元素,然后调用values()
去掉map函数留下的unneded外部标签。
如果您需要进一步解释,请在下面的评论中询问
推荐阅读
- vuejs2 - Vue.js:如何跨 3 列进行路由
- c# - 用户登录 asp.net core 3 后 Cookie 身份验证未重定向
- python - AUTO ARIMA MODEL 在 python 中预测每小时数据
- java - 指针是否在本地声明的末尾关闭?
- java - 在Tomcat中将Spring引导部署为战争时未加载CSS JS和链接
- php - 为什么我得到 mysqli::real_connect(): (HY000/2002): No such file or directory 尝试登录 phpmyadmin
- elasticsearch - Elasticsearch 和 Kibana - Kibana 服务器尚未准备好
- excel - 在Excel中找到最长的连续增加序列
- powershell - Get-Content Add-Content 从TXT文件中的换行符开始,powershell
- python - 如何处理将任意数量的列表解析为字典