从PHP服务器端返回正确格式到Vue前端有困难
我的目标是对包含纬度和经度记录的数据库进行GET-axios/ajax调用,然后将每个记录的2个纬度和经度组合成一个JSON对象,其格式为从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([
{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
是什么样子的?我在我的帖子中添加了回复您可以使用它来完成:)