解决Collection Object ([:protected]=Array())报错

今天用laravel的DB取多个表的数据做统计运算,里面使用了多次DB查询并嵌套三个for循环、多个->leftJoin()一次使用、->select()多键,结果只能取到数据中的第一条数据,从第二条开始的数组格式数据都为:

Illuminate\Support\Collection Object ( [items:protected] => Array ( ) ) 

而且PHP、laravel都不会报错。

很明显,数组:protected 以后,数组运算的“键=>值”都会为空。为空也不报错,很蛋疼。

百度后没找到原因,于是我逐步打印每次数据运算的结果,最后排查到某地方在运算

->leftJoin()

的时候,数据出现了:protected ,可以才想到可能是多余的多个leftJoin差生了某种错误。

于是,简化了和删除了多个->leftJoin(),同时简化了->select()里面的键,果然解决以上问题。

不知道是不是触发了PHP里面的安全校验,还是触发了MySQL里面的校验,进而造成了数组出现:protected 。

-

你可能感兴趣的:(解决Collection Object ([:protected]=Array())报错)