Мне кажется действительно странным, что эта конкретная ошибка выбрасывается.Однако мы можем видеть в предоставленном вами коде следующее: $time_difference
* * * * * * * * * * * * *
* * * * * * * * * * * * Illuminate\Database\Query\Builder
Обычно это возвращает экземпляр * *1005*, который является объектом, если я не ошибаюсь.
Если вы посмотрите на исходный код , вы увидите, что эта функция возвращает $this
, что является примером вышеупомянутого.
Что я могу сказать, чтоотсутствует выполнение запроса.Обычно за select()
следует get()
или first()
, как показано в документации .
Еще одно действие, которое вы должны предпринять, это проверить что-либо, что было возвращено после того, каквыполнение вашего запроса.Ваш окончательный код с некоторыми изменениями может выглядеть так:
$time_difference = DB::table('active_user')
->select([
'acu_name',
DB::raw('AVG(TIMESTAMPDIFF(MINUTE, acu_at, acu_et)) as averageTime'),
])
->where('acu_at', '<=', $currentTime)
->groupBy('acu_name')
->first(); // Be aware this will only return the first row. Not sure if this is what you inted to do.
if (is_null($time_difference)) {
// Do something when it has not been found.
}
$chart = Charts::create('bar', 'highcharts')
->title('Total Clients Average Using Time')
->elementLabel("Total")
->labels($time_difference->acu_name)
->values($time_difference->averageTime)
->responsive(false);