how to do nested json on these table i want a result that would look like this.
{
"data":[
{
"id":2,
"name":"miles",
"email":"[email protected]",
"details":[
{
"id":1,
"user_id":"2",
"product_id":"product-003",
"label":"purchase rebate",
"status":"unpaid",
"amount":"2.00",
"process_date":"2019-09-20 10:18:22"
},
{
"id":2,
"user_id":"2",
"product_id":"product-003",
"label":"survey answer rebate",
"status":"unpaid",
"amount":"2.00",
"process_date":"2019-09-20 10:24:06"
}
]
},
{
"id":3,
"name":"Jayson",
"email":"[email protected]",
"details":[
]
}
]
}
heres my server side script
$merchant_users = DB::table('merchant_users as a')
->leftjoin('user_rebate_transactions as b', 'b.user_id','=','a.id')
->select('a.id','a.name',DB::raw('SUM(b.amount) as total'),'a.email')
->where('b.status','unpaid')
->groupBy('a.id','a.name','a.email')->get();
$some1 = json_decode($merchant_users, true);
$out = [];
foreach($some1 as $merchant_users){
$query = DB::table('user_rebate_transactions')->select('*')
->where([['user_id','=',$merchant_users['id']],['status','=','unpaid']])->get();
// echo json_encode($query);
$out['data'][] = ['id' => $merchant_users['id'],
'name' => $merchant_users['name'],
'email' => $merchant_users['email'],
'total' => $merchant_users['total'],
'details' => $query];
}
return json_encode($out, JSON_PRETTY_PRINT);
here's my result
{
"data":[
{
"id":2,
"name":"miles",
"email":"[email protected]",
"total":"4.00",
"details":[
{
"id":1,
"user_id":"2",
"product_id":"product-003",
"label":"purchase rebate",
"status":"unpaid",
"amount":"2.00",
"process_date":"2019-09-20 10:18:22"
},
{
"id":2,
"user_id":"2",
"product_id":"product-003",
"label":"survey answer rebate",
"status":"unpaid",
"amount":"2.00",
"process_date":"2019-09-20 10:24:06"
}
]
}
]
}
my table structure is merchant user table AND user rebate transactions table