thinkphp5 Model查询结果转为数组

php / 154人浏览 / 0人评论

这两天在改一个TP5的老项目,直接调用model查标签发现返回的是对象,记得以前laravel里面有个toArray()的功能,但TP调用报错,在网上翻了翻资料,发现要在模型里面做设置“resultset_type”,顺便记录下来和大家一块分享吧,看了下网上的小伙伴找到了两种解决方案:

方案一 找到TP5框架中的database.php文件,该文件中找到 resultset_type 该项,将后面的 array 改成 \think\Collection

// 数据集返回类型
'resultset_type'  => 'array', 

修改为

// 数据集返回类型
'resultset_type'  => '\think\Collection',

这样在查询的时候就可以像laravel一样直接调用toAarray();方法直接转属组了

$result = User::all([7, 8, 9, 10])->toArray();

方案二 在当前操作的Model里面设置$resultSetType属性

protected $resultSetType = 'collection';

在调用查询结果的时候仍然可以使用toArray()方法

$result = User::all([7, 8, 9, 10])->toArray();

这两种方法都可以解决问题,其实看网上评论吐槽TP太土,NB的项目都喜欢用高大上的laravel,swoole但不管怎么说,TP是一款上手比较快的框架,最早写PHP用的TP3.2到现在的TP6,方便快捷,简单容易上手,所以一直没有放弃TP,尽管经常被客户指责太喽,我想说的是没有喽的框架,其实说喽也是博主的编程水平太喽,和人家框架没关系,就写到这里吧,转载的小伙伴记得给留个链接非常感谢!thinkphp5 Model查询结果转为数组

评论列表

还没有人发表评论

发表评论 取消回复