tp6数组与对象的相互转换

在tp6中可以对结果集进行数组的转换,例如使用toArray:

 $returnRes = $Db->limit($page_, $bars)->select()->toArray();

这种方式可以很直观的获得我们想要的数组:

array:4 ["code" => "B0cloudServiceIndex"
  "msg" => "查询,成功。"
  "data" => array:10 [0 => array:11 ["id" => 16
      "name" => "SF"
      "Accesskey" => "SDFsdfsdf23"
      "Secretkey" => "ssf322r"
      "url" => "fsfsf"
      "Bucket" => "4"
      "describe" => "fsfs"
      "status" => 0
      "is_del" => 0
      "create_time" => 1574163829
      "update_time" => "2019-11-19 19:43:49"
    ]
    1 => array:11 []
    2 => array:11 []
    3 => array:11 []
    4 => array:11 []
    5 => array:11 []
    6 => array:11 []
    7 => array:11 []
    8 => array:11 []
    9 => array:11 []
  ]
  "page" => array:3 []
]

那么我们怎样把已经转换的数组转换成一个对象呢?
好,那么我们来看下未使用toArray时的情形:

array:4 ["code" => "B0cloudServiceIndex"
  "msg" => "查询,成功。"
  "data" => Collection {#119 ▼
    #items: array:10 [▼
      0 => array:11 []
      1 => array:11 []
      2 => array:11 []
      3 => array:11 []
      4 => array:11 []
      5 => array:11 []
      6 => array:11 []
      7 => array:11 []
      8 => array:11 []
      9 => array:11 []
    ]
  }
  "page" => array:3 []
]

我们看data项,它与上面的区别在于他是一个Collection对象的集合。
所以我们使用这种方式:

new Collection($resultData['data'])

这样我们转换后就变成了一个对象集合了:

Collection {#115 ▼
  #items: array:10 [▼
    0 => array:11 []
    1 => array:11 []
    2 => array:11 []
    3 => array:11 []
    4 => array:11 []
    5 => array:11 []
    6 => array:11 []
    7 => array:11 []
    8 => array:11 []
    9 => array:11 []
  ]
}

在以上的例子中我们的基础类继承了Collection :

class Base extends Collection
{
}

至此我们完成了数组与对象的互转。

发布了124 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42433970/article/details/103183904
今日推荐