我不知道是什么原因引起的,但是下面是使用所需JSON格式生成的原始PHP代码:
的PHP
return response()->json($model->things, 200);
JSON格式
[
{...},
{...},
...
]
但是,当我对集合进行排序时,JSON中的数组成为一个对象。
的PHP
return response()->json($model->things->sortBy("name"), 200);
JSON格式
{
"0": {...},
"1": {...},
...
}
我做错什么了吗?在2种情况下,我尝试用
dd
编码集合,但结果对我来说似乎相同。 最佳答案
从laravel文档中:
所以在sortBy()之后,您将得到以下内容:
[2=>'val1', 1 => 'val2', 0 => 'val3']
它是一个关联数组,这解释了为什么在json中它成为一个对象,并且要防止这种情况,您需要使用values()方法,如下所示:
$model->things->sortBy("name")->values()->all()
第二个问题是为什么它没有排序,因此您可以阅读以下问题:json_encode not preserving order