beksos / reviewmaster
A Laravel Package for User Review on Models, like Product review for ecommerce systems.
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:laravel-package
Requires
- php: ^7.2
- laravel/framework: ^5.6|^6.0|^7.0|^8.40
Requires (Dev)
- orchestra/testbench: ^6.21
This package is auto-updated.
Last update: 2024-11-14 18:19:35 UTC
README
This package is a fork of the original package https://github.com/dgvai/laravel-user-review by Jalal Uddin Github, with some improvments.
This package uses a trait for a model which can be reviewable by users (you can specify user model) and give starred/point ratings and only one reply can come from admin as a support response. (like Google playstore review system). This package can be used with any projects like Ecommerce, Shop, Store, etc models.
Requirements
- PHP >= 7.1
- Laravel >= 5.6
Installation
using COMPOSER
composer require beksos/reviewmaster
Configurations
Export the assets (migration and config)
php artisan vendor:publish --provider="Beksos\Review\ReviewerServiceProvider"
Run the migration
php artisan migrate
Clear configuration cache
php artisan config:cache
Usage
Add Reviewable
trait to the model where you want users to give review and ratings. As example for Product Model
Specify the user model in the config/reviewmaster file, by default it uses User.
<?php namespace App; use Beksos\Review\Reviewable; use Illuminate\Database\Eloquent\Model; class Product extends Model { use Reviewable; ... ... } ?>
Creating review for a product:
Description
makeReview(object $user, int $rating [, string $review])
Returns
Object instance of the review
Example
$product = Product::find($id); $user = auth()->user(); $product->makeReview($user,3,'Very good product!');
Review attributes
// Get all active reviews of the product $product->reviews(); // Get neumetic review count (average) $product->rating; // Get percentage review count (average) $product->rating_percent; /** * NOTE: THIS PERCENTAGE IS BASED ON 5 STAR RATING, IF YOU WANT CUSTOM STAR, USE BELLOW * This is configured via the config file comes with this package: user-review.php * You can also set environment variable for your systems default star count * * (.env) SYSTEM_RATING_STAR_COUNT=5 */ $product->averageRating(10); //percentage for 10 starrted model // Get rating given to the product by a user: $product->userRating($user); /** * Get Filtered Review * Like, get only reviews that has been given 4 stars! * */ $product->filter(4); /** * Get it's percentage, which can be shown in the progress bar! * */ $product->filteredPercentage(4); // ex: output: 75 /** * PULLING OUT REVIEWS * There are several ways you can * pull out reviews of products */ // Get all reviews of all products $reviews = Beksos\Review\Review::all(); // all reviews $reviews = Beksos\Review\Review::active()->get(); // all active reviews $reviews = Beksos\Review\Review::inactive()->get(); // all inactive reviews $reviews = Beksos\Review\Review::daily()->get(); // all daily reviews $reviews = Beksos\Review\Review::monthly()->get(); // all monthly reviews $reviews = Beksos\Review\Review::yearly()->get(); // all yearly reviews // You can also chain these methods $reviews = Beksos\Review\Review::monthly()->active()->get(); // get aa monthly active reviews // Get reviews of a product $product->reviews(); /** * $reviews has some attributes * Let's assume we are taking the first review */ $review = $reviews->first(); /** * This the model object of the traited model * In our case it is product * */ $review->model; // so $review->model->name with return the $product->name $review->user; // return User model that reviewed the model // Get review text $review->review_text; // Get review reply $review->reply; // reply a review by admin: $review->reply('Thanks for being with us!'); // making active/inactive $review->makeActive(); $review->makeInactive();
Till now that's it! Updates will bring new features soon InshaAllah.