Bana dönen JSON:
[
{
id:12,
name:'deneme',
image:'deneme.jpg',
last_targets:[
{
last_targetable_id:'12',
last_targetable_type:'type',
user_id:'1',
last_targetable:{
success_rate:54,
...
}
},
{
last_targetable_id:'13',
last_targetable_type:'type',
user_id:'1',
last_targetable:{
success_rate:75,
...
}
},
{
last_targetable_id:'13',
last_targetable_type:'type',
user_id:'1',
last_targetable:{
success_rate:25,
...
}
}
]
}
]
Bana gereken JSON çıktısı ise:
[
{
id:12,
name:'deneme',
image:'deneme.jpg',
success_rate_avg:78
}
]
Yani her kullanıcının last_targets->last_targetable içindeki success_rate'lerinin ortalamasını almak gerek.Sorgum şu şekilde:
$users = User::query()
->select('id', 'name', 'image')
->with([
'lastTargets:last_targetable_id,last_targetable_type,user_id',
'lastTargets.lastTargetable'
])
->get();
Ortalama almanın mantığını kuramadım.Ne ile ortalamasını alabilirim?İç içe olduğu için kafamı karıştırdı.