Как исправить «Вызов функции-члена get () для массива»: Laravel 5.4 - PullRequest
0 голосов
/ 14 апреля 2019

У меня проблемы с загрузкой файлов, сгенерированных мной, из базы данных с использованием maatwebsite / laravel-excel .Ошибка: вызов функции-члена get () для массива.

Раньше, когда я выбирал данные из базы данных, используя только одно поле, файл мог генерировать (.csv).Но когда я пытаюсь сделать запрос, используя псевдонимы «как», данные не могут быть получены.

public function getdoc($type)
{
    -- with this query : success --
    //$temp = AlarmV2::select('msisdn')->get();
    $today = "20181008";
    -- with this query : error --
    $temp = DB::select(DB::raw("select regionalid,
    nvl(sum(case when lastactiontype='0' then totalcharge end),0) as creditlimit_usage, 
    count(case when lastactiontype='0' then msisdn end) as creditlimit_rec,
    from alarms_v2
    where alarmdate = '$today'
    -- fatal error exception :Call to a member function get() on array --
    group by regionalid order by regionalid"))->get();

    return Excel::create('datadoc', function ($excel) use ($temp) {
        $excel->sheet('mySheet', function ($sheet) use ($temp) {
            $sheet->fromArray($temp);
        });
    })->download($type);
}

1 Ответ

0 голосов
/ 14 апреля 2019
$temp = DB::select(DB::raw("select regionalid,
    nvl(sum(case when lastactiontype='0' then totalcharge end),0) as creditlimit_usage, 
    count(case when lastactiontype='0' then msisdn end) as creditlimit_rec,
    from alarms_v2
    where alarmdate = '$today'
    -- fatal error exception :Call to a member function get() on array --
    group by regionalid order by regionalid"))->get();

Здесь вам не нужно вызывать метод get(). Потому что метод select () уже выполняет запрос и возвращает массив результатов. Итак, просто сделайте, как показано ниже:

$temp = DB::select(DB::raw("select regionalid,
        nvl(sum(case when lastactiontype='0' then totalcharge end),0) as creditlimit_usage, 
        count(case when lastactiontype='0' then msisdn end) as creditlimit_rec,
        from alarms_v2
        where alarmdate = '$today'
        group by regionalid order by regionalid"));
...