gpt4 book ai didi

jquery - 由于 AJAX 请求,Laravel 集合排序无效

转载 作者:行者123 更新时间:2023-12-01 05:13:57 25 4
gpt4 key购买 nike

当我尝试通过默认的 sort() 函数对 Laravel 集合进行排序时 - 我得到了正确的排序。但是,当我尝试通过 Ajax 获取此数据时,我从 Ajax 响应中得到了无效的排序。

例如:

 $a = collect([
'2019-01-10',
'2019-01-01',
'2019-01-24',
'2019-01-03',
'2019-01-02'
])->sort();

Laravel dd($a) 给了我正确的排序:

Collection {#508
#items: array:5 [
1 => "2019-01-01"
4 => "2019-01-02"
3 => "2019-01-03"
0 => "2019-01-10"
2 => "2019-01-24"
]
}

但是当我尝试为 jQuery Ajax 请求返回此数据时:

return response()->json([$a]);
ajax响应的

console.log():

0: "2019-01-10"
1: "2019-01-01"
2: "2019-01-24"
3: "2019-01-03"
4: "2019-01-02"

订单无效

更新
我有比示例更复杂的数据:
首先,我得到了项目列表:

$projects = DB::table('projects')
->whereIn(DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d')"), $dates)
->orderBy('created_at', 'DESC')
->get();

接下来我按created_at分组:

$data = $projects->groupBy(function ($project) {
return Carbon::parse($project->created_at)->format('Y-m-d');
})->sortKeysDesc(); //<----- sort to display newest first

所以我的结果数组排序正确,看起来像:

[
'2019-01-20' => [...] nested arrays
'2019-01-15' => [...] nested arrays
'2019-01-10' => [...] nested arrays
]

但是 JS 从 Ajax 返回:

 [
'2019-01-10' => [...] nested arrays
'2019-01-15' => [...] nested arrays
'2019-01-20' => [...] nested arrays
]

最佳答案

尝试下面的代码:

$items = array_values($a->toArray());
return response()->json([$items]);

关于jquery - 由于 AJAX 请求,Laravel 集合排序无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54403802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com