Как исправить «Неопределенное смещение: 0», когда я пытаюсь «получить значение из базы данных, используя« псевдонимы »в Laravel - PullRequest
0 голосов
/ 18 апреля 2019

Когда я пытался «получить значение из базы данных, используя псевдонимы« как », я получил ошибку, подобную этой:

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

Вывод этой функции заключается в отображении данных об использовании клиента, основанных на результатах расчета запросов.

1 Ответ

0 голосов
/ 19 апреля 2019

Вы можете преобразовать ваши данные в массив и посмотреть, можете ли вы получить доступ к смещению 0.

Ваш код будет выглядеть так:

$dtusagearray = (array) $dtusagearray;
$dtusage = $dtusagearray[0];
return view('customerprofile', compact('dtusage'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...