Как сделать вложенный JSON на эти таблицы, я хочу, чтобы результат выглядел следующим образом.
{
"data":[
{
"id":2,
"name":"miles",
"email":"sb-o8c47x137031@personal.example.com",
"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":"sb-rv9me150874@personal.example.com",
"details":[
]
}
]
}
вот мой скрипт на стороне сервера
$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);
вот мой результат
{
"data":[
{
"id":2,
"name":"miles",
"email":"sb-o8c47x137031@personal.example.com",
"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"
}
]
}
]
}
моя структура таблицы таблица торговца И таблица транзакций бонуса пользователя