php – Laravel Eloquent toArray不使用方括号

php – Laravel Eloquent toArray不使用方括号,第1张

概述我正在写一个api并尝试将大量结果转换为 JSON.当雄辩的结果转换为数组时,我期待这样的事情: [ { "id": "0", ... }, { "id": "", ... }, ] 但相反,Laravel使用表键将其显示为键值列表: "0":{ { "id": "0", ... } },"1":{ 我正在写一个API并尝试将大量结果转换为 JSON.当雄辩的结果转换为数组时,我期待这样的事情:

[  {     "ID": "0",...  },{     "ID": "",]

但相反,Laravel使用表键将其显示为键值列表:

"0":{       {          "ID": "0",...       }    },"1":{       {          "ID": "1",...       }    }

这是功能:

$results = \App\Event::with('sandBoxes')->get()->sortBy('start_time')->forPage($pageNum,$perPage);    return response()->Json(array(        "events" => $page,));

我怎样才能让Laravel给我一个合适的阵列?

解决方法 当您第一次收到活动时,您的收藏品看起来像这样:

[    0 => Event1,1 => Event2,2 => Event3]

这是一个正确索引的数值数组,可以用JsON表示为数组.但是,一旦获得了Collection,就可以在其上调用sortBy(),对Collection中的项进行排序.此排序重新排列数组内的项和键的值.此时,您的收藏可能看起来像:

[    1 => Event2,0 => Event1,2 => Event3]

这不是正确索引的数字数组,不能在JsON中表示为数组.此数组必须表示为对象,这是您所看到的.

为了获得您期望的结果,您需要在对其进行排序后重新键入集合中的项目.您可以使用Collection上的values()方法执行此 *** 作(它只调用内部项数组上的array_values()).

一旦你重新修改了你的Collection,它将看起来像:

[    0 => Event2,1 => Event1,2 => Event3]

现在这是一个正确索引的数字数组,可以用JsON表示为数组.

所以,你的代码应该类似于:

$results = \App\Event::with('sandBoxes')    ->get()    ->sortBy('start_time')    ->values() // re-key the items in the collection after sorting    ->forPage($pageNum,$perPage);
总结

以上是内存溢出为你收集整理的php – Laravel Eloquent toArray不使用方括号全部内容,希望文章能够帮你解决php – Laravel Eloquent toArray不使用方括号所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1256410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存