Laravel toArray 对象转数组问题?

目前单条数据对象 toArray() 可以转成数组,多条数据对象toArray()后外层是数组,内层还是对象,这是什么情况。laravel有没有解决办法?自己再转一次数组感觉很不方便

找到解决办法了file

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 10

只有实现了Arrayable接口的对象才会被转换成array

7年前 评论

@dongyuhappy 怎么实现?我直接用Laravel Eloquent ORM的toArray()方法

7年前 评论

@zqf1025 直接丢代码了

这个是Collection的toArray方法


    public function toArray()
    {
        return array_map(function ($value) {
            return $value instanceof Arrayable ? $value->toArray() : $value;
        }, $this->items);
    }

如果你的内部对象是Arrayable的,必然会返回一个数组。你现在没有返回数组,你要检查下,你Collection里面包含的对象到底是什么。

7年前 评论

好麻烦,为什么查询出来的结果是集合对象?花了时间记一套数组函数就足够了,这里又要记忆一套仅仅适用laravel框架的集合函数,增加多少时间成本,而且还不适用于其他框架。

6年前 评论

@dongyuhappy 其实 model 对象也是 Arrayable 的,如果里面对象是 model 的话,应该可以转化为数组的

6年前 评论

laravel查询出来的数据感觉都是对象的

5年前 评论

为什么我用 toarray() 就报错呢

5年前 评论

lumen.ERROR: exception 'BadMethodCallException' with message 'Call to undefined method Illuminate\Database\Query\Builder::toarray()' in D:\mall\appserver\vendor\illuminate\database\Query\Builder.php:2258 Stack trace: #0 [internal function]: Illuminate\Database\Query\Builder->__call('toarray', Array) #1 [internal function]: 这个是什么错误呢

5年前 评论
猪猪

@zhaoxiaobo 你是如何调用方法的

5年前 评论
猪猪

@zhaoxiaobo $user = User::get()->toArray(); 你这样试试

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!