Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax响应未以排序形式返回laravel controller_Php_Json_Laravel_Laravel 5 - Fatal编程技术网

Php Ajax响应未以排序形式返回laravel controller

Php Ajax响应未以排序形式返回laravel controller,php,json,laravel,laravel-5,Php,Json,Laravel,Laravel 5,我从数据库中提取数据,然后再向该对象添加一个属性,即距离。并根据该属性对对象数据进行排序。当我在控制器中添加dd()时,它会检查数据是否已排序。我看到数据是经过排序的,但当我将其作为JSON响应返回时,它将从数据库返回 控制器功能 public function search(Request $request) { $providers = Provider::get()->map(function($item) use($request){ $i

我从数据库中提取数据,然后再向该对象添加一个属性,即距离。并根据该属性对对象数据进行排序。当我在控制器中添加dd()时,它会检查数据是否已排序。我看到数据是经过排序的,但当我将其作为JSON响应返回时,它将从数据库返回

控制器功能


 public function search(Request $request)
    {
 

    $providers = Provider::get()->map(function($item) use($request){
        $item->setAttribute('distance',$this->addDistanceToProvider($item,$request)) ;
        return $item;
    })->sortBy('distance');

    dd($providers);
        return response()->json($providers);

    }


由于
sortBy()
的结果保留了原始数组键,因此当作为json响应发送时,它在javascript中作为对象(对象)接收,而在javascript中,对象是未排序的

因此,我们需要在
sortBy()
之后链接
values()
,以重置键,这将导致javascript接收一个数组(对象),从而保留在控制器中完成的排序

公共功能搜索(请求$Request)
{
$providers=Provider::get()->map(函数($item)使用($request){
$item->setAttribute('distance',$this->addDistanceToProvider($item,$request));
返回$item;
})->排序方式(“距离”)->值();
返回响应()->json($providers);
}
尝试此操作,排序顺序也将保留在前端