I had the same problem since few days so therefore found another way to solve this
POSTMAN RESPONSE EARLIER
{
"Status": 200,
"Data": {
"MyAssetsList": [
{
"AssetsId": 15,
"UserCredentialId": 7,
"NickName": "jals",
"EquipmentId": "BO_15",
"EquipmentTypeId": 4,
"EquipmentTypeValue": "Backhoe",
"MakeId": 1,
"OEMName": "JCB",
"ModelId": 1,
"ModelName": "EX1235",
"YearOfPurchase": 2022,
"OtherOEMName": "rw",
"OtherModelName": 0,
"MetricId": 1,
"Capacity": "1.000 Kg",
"EquipmentAge": "2 Months",
"ProcessCompletionPercentage": 100
},
{
"AssetsId": 14,
"UserCredentialId": 7,
"NickName": "jal",
"EquipmentId": "",
"EquipmentTypeId": 4,
"EquipmentTypeValue": "Backhoe",
"MakeId": 1,
"OEMName": "JCB",
"ModelId": 1,
"ModelName": "EX1235",
"YearOfPurchase": 2022,
"OtherOEMName": "rw",
"OtherModelName": 0,
"MetricId": 1,
"Capacity": "1.000 Kg",
"EquipmentAge": "2 Months",
"ProcessCompletionPercentage": 33.33
},
{
"AssetsId": 13,
"UserCredentialId": 7,
"NickName": "rest",
"EquipmentId": "",
"EquipmentTypeId": 4,
"EquipmentTypeValue": "Backhoe",
"MakeId": 1,
"OEMName": "JCB",
"ModelId": 1,
"ModelName": "EX1235",
"YearOfPurchase": 2022,
"OtherOEMName": "rw",
"OtherModelName": 0,
"MetricId": 1,
"Capacity": "1.000 Kg",
"EquipmentAge": "2 Months",
"ProcessCompletionPercentage": 33.33
},
{
"AssetsId": 11,
"UserCredentialId": 7,
"NickName": "test",
"EquipmentId": "",
"EquipmentTypeId": 1,
"EquipmentTypeValue": "Excavator",
"MakeId": 1,
"OEMName": "JCB",
"ModelId": 1,
"ModelName": "EX1235",
"YearOfPurchase": 2022,
"OtherOEMName": 1,
"OtherModelName": 1,
"MetricId": 1,
"Capacity": "1.000 Kg",
"EquipmentAge": "2 Months",
"ProcessCompletionPercentage": 33.33
},
]
},
"Message": {
"SuccessMessage": "My Asset Found Successfully"
}
POSTMAN RESPONSE PRETTY AFTER SOLVING TREE STRUCTURE ISSUE
{
"Status": 200,
"Data": {
"MyAssets": {
"AssetsId: 15": {
"AssetId": 15,
"EquipmentType": {
"EquipmentTypeId": 4,
"EquipmentTypeValue": "Backhoe",
"EquipmentMake": {
"EquipmentMakeId": 1,
"EquipmentMakeValue": "JCB"
},
"EquipmentModel": {
"EquipmentModelId": 1,
"EquipmentModelValue": "EX1235"
},
"EquipmentYearOfPurchase": 2022,
"EquipmentAge": "2 Months",
"OtherOEMName": "rw",
"OtherModelName": "rw",
"MetricType": {
"MetricId": 1,
"Capacity": "1.000 Kg"
},
"ProcessCompletionPercentage": 100
}
},
"AssetsId: 14": {
"AssetId": 14,
"EquipmentType": {
"EquipmentTypeId": 4,
"EquipmentTypeValue": "Backhoe",
"EquipmentMake": {
"EquipmentMakeId": 1,
"EquipmentMakeValue": "JCB"
},
"EquipmentModel": {
"EquipmentModelId": 1,
"EquipmentModelValue": "EX1235"
},
"EquipmentYearOfPurchase": 2022,
"EquipmentAge": "2 Months",
"OtherOEMName": "rw",
"OtherModelName": "rw",
"MetricType": {
"MetricId": 1,
"Capacity": "1.000 Kg"
},
"ProcessCompletionPercentage": 33.33
}
},
"AssetsId: 13": {
"AssetId": 13,
"EquipmentType": {
"EquipmentTypeId": 4,
"EquipmentTypeValue": "Backhoe",
"EquipmentMake": {
"EquipmentMakeId": 1,
"EquipmentMakeValue": "JCB"
},
"EquipmentModel": {
"EquipmentModelId": 1,
"EquipmentModelValue": "EX1235"
},
"EquipmentYearOfPurchase": 2022,
"EquipmentAge": "2 Months",
"OtherOEMName": "rw",
"OtherModelName": "rw",
"MetricType": {
"MetricId": 1,
"Capacity": "1.000 Kg"
},
"ProcessCompletionPercentage": 33.33
}
},
"AssetsId: 11": {
"AssetId": 11,
"EquipmentType": {
"EquipmentTypeId": 1,
"EquipmentTypeValue": "Excavator",
"EquipmentMake": {
"EquipmentMakeId": 1,
"EquipmentMakeValue": "JCB"
},
"EquipmentModel": {
"EquipmentModelId": 1,
"EquipmentModelValue": "EX1235"
},
"EquipmentYearOfPurchase": 2022,
"EquipmentAge": "2 Months",
"OtherOEMName": 1,
"OtherModelName": 1,
"MetricType": {
"MetricId": 1,
"Capacity": "1.000 Kg"
},
"ProcessCompletionPercentage": 33.33
}
},
},
"AssetImageFileReference": "https://localhost/e9/FileServer/AssetsImage/",
"AssetDocumentFileReference": "https://localhost/e9/FileServer/AssetsDocument/"
},
"Message": {
"SuccessMessage": "My Asset Found Successfully"
}
PHP CODE TO CREATE TREE STRUCTURE LIKE ABOVE IS
$A = array();
$Data->MyAssetsList = $ResultModel; // ResultModel Has query result of mysql
foreach($ResultModel as $R)
{
$A['MyAssets']["AssetsId: ".$R->AssetsId]['AssetId']= $R->AssetsId;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentTypeId"]= $R->EquipmentTypeId;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentTypeValue"]= $R->EquipmentTypeValue;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentMake"]['EquipmentMakeId']= $R->MakeId;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentMake"]['EquipmentMakeValue']= $R->OEMName;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentModel"]['EquipmentModelId']= $R->ModelId;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentModel"]['EquipmentModelValue']= $R->ModelName;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentYearOfPurchase"]= $R->YearOfPurchase;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["EquipmentAge"]= $R->EquipmentAge;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["OtherOEMName"]= $R->OtherOEMName;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["OtherModelName"]= $R->OtherOEMName;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["MetricType"]['MetricId']= $R->MetricId;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["MetricType"]['Capacity']= $R->Capacity;
$A['MyAssets']["AssetsId: ".$R->AssetsId]['EquipmentType']["ProcessCompletionPercentage"]= $R->ProcessCompletionPercentage;
}
$A['AssetImageFileReference'] = base_url(PATH_TO_FILESERVER_ASSETSIMAGE);
$A['AssetDocumentFileReference'] = base_url(PATH_TO_FILESERVER_ASSETSDOCUMENT);