我正在使用Laravel Charts创建一个图,并从Eloquent查询中获取列(时间段(和数据集。
我的查询返回如下数组:
期间 | |
---|---|
01/21 | 200.00 |
21/21 | 150.00 |
21年3月 | 175.00 |
假设您使用的是Laravel>5.4,一种选择是使用具有集合的高阶消息,例如
$form_data->map->period->toArray()
这意味着你的代码看起来像:
$form_data = $this->getData($initial_date, $final_date, $product_list, $group);
$chart->labels($form_data->map->period->toArray());
$chart->dataset('My dataset', 'line', $form_data->map->amount->toArray());
或者,(如评论中所述(你也可以使用pickle:
$form_data = $this->getData($initial_date, $final_date, $product_list, $group);
$chart->labels($form_data->pluck('period')->toArray());
$chart->dataset('My dataset', 'line', $form_data->pluck('amount')->toArray());
如果您想用更少的行做同样的事情,可以使用data_get()
。
$form_data = $this->getData($initial_date, $final_date, $product_list, $group);
$chart->labels(data_get($form_data, '*.period');
$chart->dataset('My dataset', 'line', data_get($form_data, '*.amount'));
data_get($target, $key, $default = null)
处理简单的对象、数组甚至Collections,并返回一个数组。自5.5版本以来,它一直在框架中。