laravel get或first查出来是对象

问题描述

当我使用 ->get()->toArray();
并没有得到我期望的值,
我打印最外层是数组,可第二层里还是对象,
网上我看也有用 ->get()->map(){
}
利用php map() 函数处理觉得不太好,于是选择自己写一个这样就不用去处理里边的这样不管是->first 还是 ->get()出来的值都是数组,方便做一些后续处理如加字段,

方法如下(建议放在helpers/function.php里):

function objectToArray($object) {
    //先编码成json字符串,再解码成数组
    return json_decode(json_encode($object), true);
}

查询完记得判断是否为空 ,判段如下 first()

 		$reData = $data->first();
        if(empty($reData) || $reData == NULL)
            return [];
        else
            return objectToArray($reData);

->get();

 		 $reData = $data->get();
        if(empty($reData) || $reData == NULL)
            return [];
        else
            return objectToArray($reData);

->paginate() 分页

 		$reData = $data->paginate($size,['*'],'page',$cur_page);
        return  objectToArray($reData);

如果写项目时间允许,可以先封装模型,在拉一些自己总结的函数,接着封装一个公共的 控制器 base,这样可以少写很多代码。

posted @ 2022-08-30 10:10  xiaojiu99  阅读(59)  评论(0)    收藏  举报  来源