Giter Club home page Giter Club logo

rating's Introduction

Latest Stable Version License

Total Downloads

Laravel Rating

https://scontent-cai1-1.xx.fbcdn.net/v/t31.0-8/18192521_1536772739688541_5883708562629992092_o.jpg?oh=281577e64a1e326ff1989f047ab21df6&oe=59BAEBCA Rating system for laravel 5

Installation

First, pull in the package through Composer.

composer require ghanem/rating

or add this in your project's composer.json file .

"require": {
  "Ghanem/Rating": "1.*",
}

And then include the service provider within app/config/app.php.

'providers' => [
    Ghanem\Rating\RatingServiceProvider::class
];

Getting started

After the package is correctly installed, you need to generate the migration.

php artisan rating:migration

It will generate the <timestamp>_create_ratings_table.php migration. You may now run it with the artisan migrate command:

php artisan migrate

After the migration, one new table will be present, ratings.

Usage

Setup a Model

<?php

namespace App;

use Ghanem\Rating\Traits\Ratingable as Rating;
use Illuminate\Database\Eloquent\Model;

class Post extends Model implements Rating
{
    use Rating;
}

Create a rating

$user = User::first();
$post = Post::first();

$rating = $post->rating([
    'rating' => 5
], $user);

dd($rating);

Create or update a unique rating

$user = User::first();
$post = Post::first();

$rating = $post->ratingUnique([
    'rating' => 5
], $user);

dd($rating);

Update a rating

$rating = $post->updateRating(1, [
    'rating' => 3
]);

Delete a rating:

$post->deleteRating(1);

fetch the Sum rating:

$post->sumRating

// $post->sumRating() also works for this.

fetch the average rating:

$post->avgRating

// $post->avgRating() also works for this.

fetch the rating percentage.

This is also how you enforce a maximum rating value.

$post->ratingPercent

$post->ratingPercent(10)); // Ten star rating system
// Note: The value passed in is treated as the maximum allowed value.
// This defaults to 5 so it can be called without passing a value as well.

Count positive rating:

$post->countPositive

// $post->countPositive() also works for this.

Count negative rating:

$post->countNegative

// $post->countNegative() also works for this.

Sponsor

๐Ÿ’š๏ธ Become a Sponsor

rating's People

Contributors

abdullahghanem avatar cancerimex avatar davericher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rating's Issues

What do you want ?

Hello, I create an issue to know the future evolution of the package.
What do you want? What do you imagine?

๐Ÿ˜„

php artisan rateable:migration

[Symfony\Component\Console\Exception\CommandNotFoundException] There are no commands defined in the "rateable" namespace.

so confusing documentation

I just installed this package, model is set, database are published, but how to show rating in my blade and how to collect it from users??

Interface 'Ghanem\Rating\Contracts\Rating' not found

Just published the package and got the error as below

' Interface 'Ghanem\Rating\Contracts\Rating' not found '

My model is as below.

namespace App;

use Illuminate\Database\Eloquent\Model;

use Cviebrock\EloquentSluggable\SluggableInterface;
use Cviebrock\EloquentSluggable\SluggableTrait;
use Ghanem\Rating\Contracts\Rating;
use Ghanem\Rating\Traits\Ratingable as RatingTrait;

class Business extends Model implements SluggableInterface, Rating
{
    //
    use RatingTrait;
    use SluggableTrait;

}

I have tried to remove the SluggableInterface but still the same error. I am not sure if i missed out anything but any pointers will be appreciated!

Thanks!

Command not found

Hello
when I run php artisan rating:migration I get:

$ php artisan rating:migration
  [Symfony\Component\Console\Exception\CommandNotFoundException]
  There are no commands defined in the "rating" namespace.

How can I fix it?

Error in Laravel 5.2

I have error with method $post->ratingPercent()

Object of class Illuminate\Support\Collection could not be converted to int
in Ratingable.php line 50

$total = $ratings->selectRaw('SUM(rating) as total')->pluck('total'); return ($quantity * $max) > 0 ? $total / (($quantity * $max) / 100) : 0;

I check docs for query builder.

For 5.0 Laravel
https://laravel.com/api/5.1/Illuminate/Database/Query/Builder.html#method_pluck
"Pluck a single column's value from the first result of a query."

For 5.2 Laravel
https://laravel.com/api/5.2/Illuminate/Database/Query/Builder.htmll#method_pluck
"Get an array with the values of a given column."

In laravel 5.1 Pluck is deprecated and it is an alias for the "value" method.
In laravel 5.2 we need use Value instead Pluck.

If you need fix it for laravel 5.2 - replace Pluck method on Value in /vendor/ghanem/rating/src/Traits/Ratingable.php on line 50 or add condition "if is array" for compatibility with older version.

Lavarel 5.3 - Publishing complete for tag []!

hi

I use Rating with lavarel 5.3.
I run the following command :

php artisan config:clear
php artisan vendor:publish --provider="Ghanem\Rating\RatingServiceProvider"

but I catch this issues :


m@ubuntu:~/lavarel/app$ php artisan vendor:publish --provider="Ghanem\Rating\RatingServiceProvider"
Nothing to publish for tag [].

Does Rating support Lavarel 5.3 ?

Thanks.

Using rating for anonymous users

I should send a $user instance for rating() method, but what in a case of anonymous users? The only solution that I see, it's to create an anonymous user and use it when the user is not logged in.

Is there another way?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.