arrays - 如何过滤数组以获取laravel中两个不同对象中的特定列
问题描述
我需要这样的回应。
"result": [
{
"properties": {
"device_id": 15196,
"device_name": Street Light 1,
"state" : 1,
"status": 1,
},
"geometry":{
"lat":33.7017,
"lng": 73.0228
}
},
{
"properties": {
"device_id": 15196,
"device_name": Street Light 1,
"state" : 1,
"status": 1,
},
"geometry":{
"lat":33.7017,
"lng": 73.0228
}
},
]
我的代码在下面。我只想从我的整个回复中分出两个字段'lat','lng'。我的 sql 查询是正确的,但我想创建上面提到的自定义响应
$get1 = DB::table('device_user')
->join('devices', 'devices.id', '=', 'device_user.device_id')
->join('components', 'devices.id', '=', 'components.device_id')
->select('devices.id as device_id', 'devices.name', 'devices.status', 'components.state', 'components.type', 'devices.lat', 'devices.lng')
->where('device_user.user_id', $request->user_id)
->where('components.type', $type)
->get();
$array = [];
foreach ($get1 as $key => $value) {
array_push($array, ["properties" => $value, "geometry" => $value->lat]);
}
return $array;
解决方案
试试这个
$get1 = DB::table('device_user')
->join('devices', 'devices.id', '=', 'device_user.device_id')
->join('components', 'devices.id', '=', 'components.device_id')
->select('devices.id as device_id', 'devices.name', 'devices.status', 'components.state', 'components.type', 'devices.lat', 'devices.lng')
->where('device_user.user_id', $request->user_id)
->where('components.type', $type)
->get();
$main_array = [];
foreach ($get1 as $key => $value) {
$main_array[$key]['properties'] = array('device_id' => $value->device_id, 'device_name' => $value->device_name, 'state' => $value->state, 'status' => $value->status);
$main_array[$key]['geometry'] = array('lat' => $value->lat, 'lng' => $value->lng);
}
return $main_array;
推荐阅读
- angular - Ionic POST: response is a String instead of JSON
- tensorflow - 成功训练后的对象检测 API 未识别对象
- angular - Login not working after adding HTTP Interceptor - Angular 5
- ios - 获取存储在远程位置的 PDF 文件的缩略图 iOS 9 | 迅速
- swagger - Swagger Codegen 为 OpenAPI 3.0 生成什么文件夹结构?
- ios - 不明白如何本地化 iOS react-native 应用的 plist
- javascript - 如何将类绑定到需要在 Vue.js (v1) 中更改的方法
- javascript - Office.js recognizing ContentControl positions in the document
- redux - Flutter 类型的中间件
- ios - 将 GMSAutocompleteViewController 设置为仅特定于状态