为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 资源集合删除我的数组键

Laravel 资源集合删除我的数组键

PHP
宝慕林4294392 2022-07-29 16:32:45
我有一个资源集合来获取我所有的对话。因为前端已经编码(由另一个人),所以我想将所有这些作为对象返回,数据库的 dialog_id 作为键,对话对象作为值。但是当我想转换从我的资源集合中获得的数组(使用 (object) $array)时,它仍然返回一个没有我设置的任何键的数组。在我的控制器函数中,我调用:return new DialogueResourceCollection($dialogues);我的收藏资源如下所示:class DialogueResourceCollection extends ResourceCollection{    /**     * Transform the resource into an array.     *     * @param  \Illuminate\Http\Request $request     * @return array     */    public function toArray($request)    {       $array = [];        for ($i = 0; $i < sizeof($this); $i++) {            $j = $this[$i]->dialogue_id;            $array[$j] = $this[$i];        }        return $array;    }}我得到什么:[    {        "dialogue_id": 1,        "text": "example text"    }, ...我想得到什么:{ "34" :   {        "dialogue_id": 34,        "text": "example text"    }, ...}
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

当从路由返回资源集合时,Laravel 会重置集合的键,以便它们以简单的数字顺序排列。但是,您可以向资源类添加一个 preserveKeys 属性,指示是否应保留集合键。把它放在你的代码上面。

public $preserveKeys = true;

在此处阅读文档保留密钥


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 212 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号