coroo / nova-chartjs

A Simple Dashboard Chart in Laravel Nova using Chart JS. Starting create your own dashboard with Chart JS Integration can save your time and help you maintain consistency across standard elements such as Bar, Stacked, Line, Area, Doughnut and Pie Chart.
https://coroo.github.io/nova-chartjs
MIT License
214 stars 71 forks source link

Undefined property: stdClass::$filter at /var/www/vendor/coroowicaksono/chart-js-integration/src/api/TotalRecordsController.php #173

Open alishanda opened 10 months ago

alishanda commented 10 months ago

Hi I use this library with Laravel 10.25.2 Nova 4.27.13 Laravel and Nova with totally default settings. I just install them.

Every time I try to create any chart from model I have this error in my logs

[2023-12-14 12:17:59] local.ERROR: Undefined property: stdClass::$filter {"exception":"[object] (ErrorException(code: 0): Undefined property: stdClass::$filter at /var/www/vendor/coroowicaksono/chart-js-integration/src/api/TotalRecordsController.php:60)

It's this part of TotalRecordsController

if(isset($request->series)){
                foreach($request->series as $seriesKey => $serieslist){
                    $seriesData = (object) $serieslist;
                    $filter = (object) $seriesData->filter;

After some investigation I find out that Laravel Controller unserialize json object series as

[2023-12-14 12:19:51] local.ERROR: Array
(
    [0] => {"label":"Product A","filter":{"key":"type","value":"post_income"},"fill":false}
    [1] => {"label":"Product A","filter":{"key":"type","value":"post_income"},"fill":false}
    [2] => {"label":"Product A","filter":{"key":"type","value":"post_income"},"fill":false}
)

So final object looks like this

[2023-12-14 12:06:35] local.ERROR: stdClass Object
(
    [scalar] => {"label":"Product A","filter":{"key":"type","value":"post_income"},"fill":false}
)

When I fix this like this - everything starts to work $seriesData = (object) json_decode($serieslist, true);

But, obviously it's not a decision. Can you please tell me what I'm doing wrong and how to fix this.

hemant17 commented 9 months ago

I am facing the same issues Undefined property: stdClass::$filter {"userId":2,"exception":"[object] (ErrorException(code: 0): Undefined property: stdClass::$filter at /var/www/nextlevelbot.com/vendor/coroowicaksono/chart-js-integration/src/api/TotalRecordsController.php:59) after update to ^0.4.0

Sinecuraweb commented 9 months ago

I have fixed this problem, but PR has not been accepted yet

https://github.com/coroo/nova-chartjs/pull/176

hemant17 commented 8 months ago

@coroo Please Take a look need that urgently because of breaking changes in Client project of Nova

stiplady commented 8 months ago

Thanks for proposing a fix for this @Sinecuraweb - I also had this issue while testing replacements for the standard charts. Hoping it is approved by @coroo soon.

stiplady commented 8 months ago

@hemant17 @Sinecuraweb @alishanda I found the root cause of the issue. This module was updated to be compatible with Nova 4.31, update your copies of Nova and this issue will be resolved.

@coroo Please update composer.json to require versions of Nova at least 4.31

hemant17 commented 8 months ago

But i don't want to update because @stiplady it's a large project and have other complexx thing