-1

当我尝试使用别名“as”从数据库中获取值时,出现如下错误:

在 HandleExceptions->handleError(8, '未定义的偏移量: 0', '/data/gui/hum/hum.v3.1/vendor/laravel/framework/src/Illuminate/Support/Collection.php', 1570, 数组( '键' => 0))

我试图将存储在临时变量中的数据更改为数组。我使用来自 laravel "collect()" 的方法以对象的形式收集数据。

这是我获取数据并返回视图以从数据库获取数据使用情况的功能。

$dtusagearray = DB::select(DB::raw(" select    
            sum.msisdn msi,
            sum.imsi ims,
            sum.customer_status st,
            sum.grapari_name grp,
            substr(sum.customer_group,1,3) cg,
            sum.regional_name reg,
            sum.billperiod eop,
            sum.totalcharge tch,
            to_char(sum.totalcharge,'999,999,999,999') tc,
            to_char(sum.riskscore,'999,999,999,999') cr,
            to_char(sum.billingavg,'999,999,999,999') avb,
            to_char(sum.billingmax,'999,999,999,999') mab,
            to_number(to_char(sum.lastcall,'DD')) day,
            to_char(ceil(sum.billingavg/(ceil(to_number(to_char(sum.lastcall,'DD'))))),'999,999,999,999') avchday,
            to_char(sum.lastcall,'dd/mm/yyyy hh24:mm:ss') lc,
            (select count(msisdn) from actions a where a.msisdn=sum.msisdn and a.billperiod=sum.billperiod and a.actiontype='5') jml_call,
            (select count(msisdn) from actions a where a.msisdn=sum.msisdn and a.billperiod=sum.billperiod and a.actiontype='3') jml_sms,
            (select count(msisdn) from actions a where a.msisdn=sum.msisdn and a.billperiod=sum.billperiod and a.actiontype='2') jml_adj,
            (select count(msisdn) from actions a where a.msisdn=sum.msisdn and a.billperiod=sum.billperiod and a.actiontype='1') jml_blk,
            nvl(sum.roam_name, sum.lastroam) lr
        from master_ip333_charge sum
        where sum.msisdn = '62'||'$msisdn'
        order by sum.billperiod asc 

这就是我尝试从对象转换数据并返回视图以显示结果的方式

$dtusagearray = collect($dtusagearray);
$dtusage = $dtusagearray[0];
return view('customerprofile', compact('dtusage'));

此函数的输出是根据查询的计算结果显示客户使用数据。

4

1 回答 1

0

您可以将数据转换为数组,看看是否可以访问偏移量 0。

您的代码将如下所示:

$dtusagearray = (array) $dtusagearray;
$dtusage = $dtusagearray[0];
return view('customerprofile', compact('dtusage'));
于 2019-04-19T07:05:21.050 回答