nova-chartjs icon indicating copy to clipboard operation
nova-chartjs copied to clipboard

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

Open alishanda opened this issue 1 year ago • 6 comments

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.

alishanda avatar Dec 16 '23 14:12 alishanda

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

hemant17 avatar Jan 19 '24 17:01 hemant17

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

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

Sinecuraweb avatar Jan 23 '24 09:01 Sinecuraweb

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

hemant17 avatar Feb 01 '24 18:02 hemant17

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 avatar Feb 07 '24 16:02 stiplady

@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

stiplady avatar Feb 12 '24 16:02 stiplady

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

hemant17 avatar Feb 28 '24 18:02 hemant17