code4mk/lara-rating

dev-master 2019-05-11 02:29 UTC

This package is auto-updated.

Last update: 2024-11-11 15:24:52 UTC


README

Rating system Laravel

Easily setup rating system in your laravel poject

installation

composer require code4mk/lara-rating

setup

1) vendor publish

php artisan vendor:publish --provider="Code4mk\LaraRate\LaraRateServiceProvider" --tag=config
php artisan vendor:publish --provider="Code4mk\LaraRate\LaraRateServiceProvider" --tag=migrations

2) config

  • config/laraRate.php
"rater_table_name" => "users",
"rater_retrive_columns" =>["id","email"]
  • php artisan config:clear

method

create()

  • int $productID, int $raterID, int $rate, string $comment
use Krate;
Krate::create($productID,$userID,$rate,$comment)

update()

  • int $productID, int $raterID, int $rate, string $comment
use Krate;
Krate::update($productID,$raterID,$rate,$comment);

getRatings()

  • get specific product's rating details
  • int productID
Krate::getRatings($productID);
  • output

~ Krate::getRatings(3)

[
  {
    "id": 1,
    "product_id": 3,
    "rater_id": 3,
    "rating": 5,
    "comment": "5star",
    "created_at": "2019-05-10 16:25:10",
    "updated_at": "2019-05-10 16:25:10",
    "rater": {
      "id": 3,
      "email": "maruf@gmail.com"
    }
  },
  {
    "id": 2,
    "product_id": 3,
    "rater_id": 2,
    "rating": 2,
    "comment": "2star",
    "created_at": "2019-05-10 16:26:58",
    "updated_at": "2019-05-10 16:26:58",
    "rater": {
      "id": 2,
      "email": "jamal@gmail.com"
    }
  }
]

getRatingStat()

  • rating type
  • int productID
Krate::getRatingStat($productID);
  • output

~ Krate::getRatingStat(3)

{
    "rateType": {
        "one_star": {
            "star": 0,
            "percent": 0
        },
        "two_star": {
            "star": 1,
            "percent": 50
        },
        "three_star": {
            "star": 0,
            "percent": 0
        },
        "four_star": {
            "star": 0,
            "percent": 0
        },
        "five_star": {
            "star": 1,
            "percent": 50
        }
    },
    "total_rater": 2,
    "rating": 4
}

getRaterRatings

  • customer/rater/user's rating lists
  • int raterID
Krate::getRaterRatings($raterID);

~ Krate::getRaterRatings(2)

[
    {
        "id": 1,
        "product_id": 1,
        "rater_id": 1,
        "rating": 5,
        "comment": "5 star",
        "created_at": "2019-05-11 00:55:46",
        "updated_at": "2019-05-11 00:55:46",
        "product": {
            "name": "iphone 10",
            "slug": "iphone-10"
        }
    }
]