在laravel中为morris js创建数组

问题描述 投票:0回答:1

我很难从表中加载某些数据以获取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}
arrays json laravel morris.js
1个回答
0
投票

也许有更好的方法来处理您的案件,但是由于您没有提供有关模型或数据库结构的更多信息,因此应该可以:

$subscriber = Subscribe::select('type')->get()
    ->groupBy('type')
    ->map(function($subscribe, $label) {
        return ['value' => $subscribe->count(), 'label' => $label];
    })
    ->values()
    ->toJson();

关键是在map函数内构建内部数组元素,然后调用values()摆脱map函数留下的未经修饰的外部标签。

如果您需要进一步的解释,请在下面的评论中提问

© www.soinside.com 2019 - 2024. All rights reserved.