如何解决“在数组上调用成员函数get()”:Laravel 5.4

使用maatwebsite / laravel-excel从数据库下载已生成数据的文件时遇到麻烦。错误:在数组上调用成员函数get()。


以前,当我仅使用一个字段从数据库中选择数据时,该文件可以生成(.csv)。但是,当我尝试使用别名“ as”进行查询时,无法获得数据。


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);

}


Cats萌萌
浏览 153回答 1
1回答

郎朗坤

$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"));
打开App,查看更多内容
随时随地看视频慕课网APP