Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Farirai's avatar

larapex chart error Undefined variable $chart

am trying to use larapex charts in my laravel dashboard but get error above followed the documentation guide but no luck

my chart

<?php

namespace App\Charts;

use ArielMejiaDev\LarapexCharts\LarapexChart;

class UsersChart
{
    protected LarapexChart $chart;

    public function __construct(LarapexChart $chart)
    {
        $this->chart = $chart;
    }

    public function build(): \ArielMejiaDev\LarapexCharts\RadialChart
    {
        return $this->chart->radialChart()
            ->setTitle('Passing effectiveness.')
            ->setSubtitle('Barcelona city vs Madrid sports.')
            ->addData([75, 60])
            ->setLabels(['Barcelona city', 'Madrid sports'])
            ->setColors(['#D32F2F', '#03A9F4']);
    }
}

my controller

<?php

namespace App\Http\Controllers;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use App\Models\Report;
use App\Models\User;
use App\Models\Obook;
use App\Models\Assessment;
use App\Charts\UsersChart;


use Illuminate\Http\Request;

class DashboardController extends Controller
{
    public function index(UsersChart $chart) {
        $users = User::all();
        $obooks = Obook::all();
        $reports = Report::all();
        $roles = Role::all();
        $permissions = Permission::all();
        $assessments = Assessment::all();
        return view('dashboard.index',
            compact('users', 'obooks', 'reports', 'assessments', 'roles', 'permissions'),
        ['chart', $chart->build()]
        );
    }
}

my view



    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Chart Sample</title>
    </head>
    <body class="h-screen bg-gray-100">

    <div class="container px-4 mx-auto">

        <div class="p-6 m-20 bg-white rounded shadow">
            {!! $chart->container() !!}
        </div>

    </div>

    <script src="{{ $chart->cdn() }}"></script>

    {{ $chart->script() }}
    </body>
    </html>



0 likes
2 replies
tykus's avatar
tykus
Best Answer
Level 104

The mergeData should be associative, right?

return view('dashboard.index',
    compact('users', 'obooks', 'reports', 'assessments', 'roles', 'permissions'),
    ['chart' => $chart->build()] // key => value
);
1 like

Please or to participate in this conversation.