lumen 数据库操作 Cannot use object of type stdClass as array

lumen,php语言 2020-09-26

你可能记得,操作数据库时
$dataList = 什么什么 ->get();
能查询到数据 数据结果为数组加stdClass类型

你使用 $dataList = $dataList->toArray();进行数据转化

结果你发现,没有正确转化,你再到里面去转化,但结果证明也是徒劳

foreach ($allData as $k=>$d){
     $ff = 'id';
     if(!is_array($d)){
           $d = $d->toArray();
     }
     $tempData[] = $d[$ff];
}

那怎么办呢?
要想到数据类型的转化
数组转对象,可以直接

$arr  //数组
$arr = (object)$arr;  //数组转对象

那反过来

$arr  //对象
$arr = (array)$arr;  //对象转数组

所以,以上代码可以改写为如下即可解决问题

foreach ($allData as $k=>$d){
     $ff = 'id';
     if(!is_array($d)){
           $d = (array)$d;
     }
     $tempData[] = $d[$ff];
}

本文由 wenyi 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论