Download the PHP package mtvs/eloquent-aggregate-rating without Composer
On this page you can find all versions of the php package mtvs/eloquent-aggregate-rating. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package eloquent-aggregate-rating
Eloquent Aggregate Rating
Automatic rating aggregation for Laravel Eloquent models with reviews.
This package aggregates the ratings' average and count of a model, which is reviewed, and updates the model on the occurance of the specified events, e.g.: after saving or deleting a review. So, it facilitates the access to these values and eliminates the problem of n+1 queries when retrieving a list of the models with their aggregate-rating values and also the need for subqueries when sorting the models based on their rating.
Setup
First, modify the database table of the model that is reviewed and add two new columns, one to store the ratings' average and another one for the ratings' count, forexample:
Obviously, there has to be a rating
column on the reviews table.
Then, there're two traits. One is intended to be used in the model that is reviewed. It contains an abstract method that has to be implemented to return the relationship to the review model.
The other is to be used in the review model. It contains an abstract method to return the relationship to the model that is reviewed.
Triggering Events
The aggregateRatingEvents()
, which is on the HasIndividualRating
trait,
returns the events on the review model that trigger the process of the aggregation
and updating the related model. This method's default definition is as the
following:
But you can overwrite it to spicify your custom events:
Customizing The Column Names
If you want to choose other names for your columns, set the following constants on your models to the corresponding values.