mardi 1 août 2017

Display user details with their average rating in laravel

In my case, I have two table like users table and rating table.

In user table, I'm storing user's personal details like name, email etc,

In rating table, I'm storing user_id and rating(rating will be in numbers like 1,2,3,4 and 5)

I have created relationship two tables here is the relation

//User Model
public function ratings()
{
    return $this->hasMany(Rating::class);
}

//Rating model
public function user()
{
    return $this->belongsTo(Consultant::class);
}

I can able to display get data with eager loading

 $data = User::with('ratings')->get();

The Response I'll get from eager load is

 [
 {
 "id": 1,
 "cunsultant_name": "Quincy Jerde",
 "contact_number": "882-904-3379",
    "ratings": [
    {

        "user_id": 1,
        "rating_for_user": 3

    },
    {

        "user_id": 1,
        "rating_for_user": 5
    },
    {

        "user_id": 2,
        "rating_for_user": 3
    }
    ]
    },
    {
   "user_name": "Alene Dicki",
   "contact_number": "247.604.8170",
        "ratings": [
            {
                "id": 4,
                "user_id": 3,
                "rating_for_user": 3
            }
    ]
 }
]

So how can I get an average rating for every user with eager loading?



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2vnZPXj
via IFTTT

Aucun commentaire:

Enregistrer un commentaire