Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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服务器端返回正确格式到Vue前端有困难_Php_Json_Laravel - Fatal编程技术网

从PHP服务器端返回正确格式到Vue前端有困难

从PHP服务器端返回正确格式到Vue前端有困难,php,json,laravel,Php,Json,Laravel,我的目标是对包含纬度和经度记录的数据库进行GET-axios/ajax调用,然后将每个记录的2个纬度和经度组合成一个JSON对象,其格式为{lat:20,lng:20}。目前我有: public function getLocations(Request $request){ $locations = Location::where('user_id', 1)->get()->toJson(); return response()->json([

我的目标是对包含纬度和经度记录的数据库进行GET-axios/ajax调用,然后将每个记录的2个纬度和经度组合成一个JSON对象,其格式为
{lat:20,lng:20}
。目前我有:

public function getLocations(Request $request){
    $locations = Location::where('user_id', 1)->get()->toJson();

    return response()->json([
        'locations' => $locations,
        'message' => 'Successfully added locations!'
    ], 201);
}
我需要以某种方式传递一个json对象数组。我认为应该是这样的:

$locations = [   {lat: 10, lng: 10},
    {lat: 11, lng: 11},
    {lat: 12, lng: 12}
]
public function getLocations(Request $request){
    $locations = Location::where('user_id', 1)->get();

    $locationsData= [];
    foreach ($locations  as $location) {
        $locationsData[] = ['lat' => $location->lat, 'lng' => $location->lng];
    }
    return response()->json([
        'locations' => $locationsData,
        'message' => 'Successfully added locations!'
    ], 201);
}
$locations中的每个记录都有一个JSON对象。lat和lng位于美元位置。例如$locations->lat和$locations->lng。我将如何着手创建这样一个可以在前端使用的对象

[{"id":40,"user_id":1,"lat":42,"lng":24,"created_at":"2019-01-16 10:14:40","updated_at":"2019-01-16 10:14:40"},
{"id":41,"user_id":1,"lat":43,"lng":25,"created_at":"2019-01-16 10:14:41","updated_at":"2019-01-16 10:14:41"}]

你可以这样做:

$locations = [   {lat: 10, lng: 10},
    {lat: 11, lng: 11},
    {lat: 12, lng: 12}
]
public function getLocations(Request $request){
    $locations = Location::where('user_id', 1)->get();

    $locationsData= [];
    foreach ($locations  as $location) {
        $locationsData[] = ['lat' => $location->lat, 'lng' => $location->lng];
    }
    return response()->json([
        'locations' => $locationsData,
        'message' => 'Successfully added locations!'
    ], 201);
}

请尝试此操作,只需一行代码:

$locations = Location::where('user_id', 1)->get(['lat', 'lng'])->toJson();

$locations
是什么样子的?我在我的帖子中添加了回复您可以使用它来完成:)