我很难从表中加载某些数据以获取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函数留下的未经修饰的外部标签。
如果您需要进一步的解释,请在下面的评论中提问