如何在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
相关产品推荐
相关产品推荐

