zoukankan      html  css  js  c++  java
  • 【Tp3.2升级记录】升级ThinkPhp5.0后,select查询的结果问题处理

    前言:最近由于各种原因,需要将一个TP3.2.0项目升级到比较新的版本,以减少系统漏洞,目前目标是5.0的最新版本。

    问题:由TP3.2升级TP5.0后,select查询的结果有所不同,导致foreach使用的时候出现问题,按官方文档的描述是:  

      新版的模型查询返回默认对象,系统默认增加了toArray方法,许多开发者在all或select尝试使用toArray来转换为数组,在此希望开发者能理解对象的概念,尝试使用对象进行数据的使用,或者使用db方法进行数据库的操作,也提醒一下部分滥用toArray的开发者,all或select结果是对象的数组集合,是无法使用toArray进行转换的。

      简单来说就是查询的结果原来返回的是数组,现在返回的是一个数组,数组中子一级是对象类型,而且不能直接使用toArray处理。

    解决方法:

      将select()查询的对象结果转化一下,转化为数组:

    use thinkCollection
    $list = $this->field($field)->where($map)->order('sort')->select();
    // Collection是TP5的内置类
    $list = (new Collection($list))->toArray();

    嗯,就这样,就酱!

  • 相关阅读:
    赏月斋源码共享计划 第三期
    概率校准与Brier分数
    模型评估——定量分析预测的质量
    Sklearn实现逻辑回归
    赏月斋源码共享计划 第二期
    技术路线范文
    开题报告范文
    赏月斋源码共享计划 第一期
    关于研究课题中的技术路线与实施方案
    Git项目的初始化
  • 原文地址:https://www.cnblogs.com/wxdblog/p/14611976.html
Copyright © 2011-2022 走看看