0
Ich versuche, über Beziehungen nur Durchschnitt zu erhaltenLaravel 5 bekommen Durchschnitt von Beziehung
, was ich tue, ist:
$user_detail=Users::withCount('followers')->withCount('followings')->withCount('posts')->with('ratings')->with('posts')->where('user_id',$user_id)->get();
public function ratings()
{
return $this->hasMany('\App\Reviews','review_user_id','user_id')->selectRaw('review_user_id, avg(rate) AS avg')->groupBy('review_user_id');
}
Nun ist diese funktioniert, und was ich bekommen ist:
"followers_count": 0,
"followings_count": 1,
"posts_count": 1,
"ratings": [
{
"review_user_id": "2c61d7a0-7d05-11e7-8dab-6d6ba8a72982",
"avg": 3.25
}
],
Was ich will, ist:
"ratings": 3.25
Jede Hilfe wäre willkommen.
PS: Laravel 5.2
tun Warum Sie alle Beziehungen dann geladen werden. Sie können '$ user_detail = Benutzer :: selectRaw ('review_user_id, avg (rate) AS avg') -> groupBy ('review_user_id') -> get(); ' – Suraj
[Eingeschränkte Lasten] (https://laravel.com/docs/5.5/eloquent-relationships#constraining-eager-loads). Rechts oben haben Sie __Eager laden spezifische Spalten__ - '$ users = App \ Book :: mit ('author: id, name') -> get();' – ljubadr