You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Splade中Blade文件Apex Chart折线图不显示问题求助

问题解决:Laravel Splade + Apex Charts 折线图空白(NaN错误)

核心原因

控制台出现的Error: attribute x2: Expected length, "NaN"错误,本质是你传给Apex Charts的不是有效数值数据——原代码直接把User模型对象转成数组传入,图表无法从模型对象中解析出可用于绘制折线的数值,导致坐标轴能渲染但折线空白。

修复步骤

1. 修正Controller的数据处理逻辑

折线图需要明确的数值数组(Y轴)和标签数组(X轴),你需要根据业务需求提取对应的数据:

示例1:按日期统计用户注册数量(常见场景)

<?php

namespace App\Http\Controllers;

use App\Models\User;
use ArielMejiaDev\LarapexCharts\LarapexChart;

class DashboardController extends Controller
{
    public function index()
    {
        // 按注册日期分组统计用户数
        $userStats = User::selectRaw('DATE(created_at) as register_date, COUNT(*) as user_count')
            ->groupBy('register_date')
            ->orderBy('register_date')
            ->get();

        $chart = (new LarapexChart)
            ->lineChart()
            // Y轴:用户数量(纯数值数组)
            ->addLine('新增用户', $userStats->pluck('user_count')->toArray())
            // X轴:注册日期(标签数组)
            ->setXAxis($userStats->pluck('register_date')->toArray())
            ->setTitle('用户增长趋势')
            ->toVue();

        return view('dashboard.index', compact('chart'));
    }
}

示例2:展示用户的某个数值字段(如用户积分)

<?php

namespace App\Http\Controllers;

use App\Models\User;
use ArielMejiaDev\LarapexCharts\LarapexChart;

class DashboardController extends Controller
{
    public function index()
    {
        $users = User::all();

        $chart = (new LarapexChart)
            ->lineChart()
            // Y轴:用户积分(假设User模型有score字段)
            ->addLine('用户积分', $users->pluck('score')->toArray())
            // X轴:用户名作为标签
            ->setXAxis($users->pluck('name')->toArray())
            ->setTitle('用户积分分布')
            ->toVue();

        return view('dashboard.index', compact('chart'));
    }
}

2. 原代码问题解析

你之前的代码中:

->addLine('Users', (array)array_values((array)$users))

这段代码把整个User模型对象转成了数组,每个元素包含模型的所有属性(如id、name、created_at等),并非单一数值,Apex Charts无法识别这种结构,因此解析出NaN,导致折线无法渲染。

验证要点

  • 确保addLine的第二个参数是纯数值数组(如[10, 20, 30])
  • 确保setXAxis的参数是字符串/日期类型的标签数组(如['2024-01-01', '2024-01-02'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:52:45