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

如何在Laravel 5.6中使用Lavacharts创建柱状图?附代码

我来帮你梳理下Laravel 5.6中使用Lavacharts实现柱状图的正确实现方式,先修正你代码里的小问题,再给你完整的可运行代码示例:

一、控制器代码修正与说明

首先要注意类名的大小写规范,还有确保$papername和$newscore两个数组长度一致,否则会出现数据不匹配的问题。修正后的控制器代码如下:

<?php

namespace App\Http\Controllers;

use Khill\Lavacharts\Lavacharts; // 注意类名首字母大写

class ChartController extends Controller
{
    public function showChart()
    {
        // 这里替换成你实际获取数据的逻辑,比如从数据库查询
        $papername = ['Paper A', 'Paper B', 'Paper C']; // 示例数据
        $newscore = [85, 92, 78]; // 示例数据

        $lava = new Lavacharts;
        
        // 创建数据表,定义列类型和名称
        $stocksTable = $lava->DataTable();
        $stocksTable->addStringColumn('Paper Name')
                    ->addNumberColumn('Results');

        // 循环添加数据行,增加索引存在判断避免报错
        foreach ($papername as $index => $name) {
            if (isset($newscore[$index])) {
                $stocksTable->addRow([$name, $newscore[$index]]);
            }
        }

        // 创建柱状图,第一个参数是图表的唯一标识(视图渲染时要对应)
        $lava->BarChart('Results', $stocksTable);

        return view('charts', ['lava' => $lava]);
    }
}

关键注意点:

  • 引入Lavacharts类时首字母必须大写,否则会触发类找不到的错误
  • 创建图表时的第一个参数'Results'是图表的唯一名称,视图渲染时必须和这个名称完全一致
  • 循环添加数据时增加索引存在性判断,避免因数组长度不一致导致的越界报错
二、视图代码修正与说明

视图里需要确保DOM元素的ID和渲染方法的参数对应,同时修正render方法的参数格式。修正后的视图代码如下:

<div id="stocks-chart"></div>

<!-- 渲染柱状图到指定DOM元素 -->
<?= $lava->render('BarChart', 'Results', 'stocks-chart'); ?>

关键注意点:

  • render方法的三个参数依次是:图表类型(BarChart)、控制器中定义的图表名称(Results)、要渲染到的DOM元素ID(stocks-chart)
  • 确保视图文件的扩展名是.blade.php,这样PHP短标签才能正常解析
  • 如果你的Laravel配置禁用了短标签,可以改用<?php echo $lava->render(...); ?>
三、补充:路由配置

别忘了在routes/web.php中添加对应的访问路由:

Route::get('/charts', 'ChartController@showChart');

完成以上配置后,访问你的域名/charts就能看到生成的柱状图了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:55:30