You need to enable JavaScript to run this app. 如何基于属性名拆分Eloquent集合为多数组适配Laravel Charts需求
优惠活动
大模型
产品
解决方案
定价
更多

如何基于属性名拆分Eloquent集合为多数组适配Laravel Charts需求

符合Laravel原生规范的实现方案

Laravel 集合内置了pluck()方法,可以直接提取指定字段的值生成集合,不需要手动遍历填充数组,你可以直接改写为如下代码:

// getData方法返回Eloquent Collection
$form_data = $this->getData($initial_date, $final_date, $product_list, $group);

// 分别提取period和amount字段
$labels = $form_data->pluck('period');
$dataset = $form_data->pluck('amount');

$chart->labels($labels);
$chart->dataset('My dataset', 'line', $dataset);

由于pluck()返回的Illuminate\Support\Collection实例实现了 Laravel 的Arrayable契约,Laravel Charts 可以直接识别该实例,不需要额外调用toArray()转成原生数组,如果你的场景需要原生数组,再补充调用->toArray()即可。

如果要进一步优化性能,可以在getData()方法的查询逻辑里限定只查需要的两个字段,避免查询冗余字段消耗资源:

// getData方法内的查询示例
return YourModel::query()
    ->select('period', 'amount')
    // 保留你原有查询条件
    ->where(...)
    ->get();

内容的提问来源于stack exchange,提问作者Raphael Andres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 03:36:02