shubhang-arora / laravel-dislikable by shubhang

Trait for Laravel Eloquent models to allow easy implementation of a 'dislike' feature.
6
3
3
Package Data
Maintainer Username: shubhang
Maintainer Contact: sa287@snu.edu.in (shubhang-arora)
Package Create Date: 2017-01-09
Package Last Update: 2018-03-01
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-11-19 03:04:17
Package Statistics
Total Downloads: 6
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 3
Total Watchers: 3
Total Forks: 0
Total Open Issues: 0

Laravel DisLikeable Plugin

Trait for Laravel Eloquent models to allow easy implementation of a "Dislike" feature.

Composer Install (for Laravel 5)

composer require shubhang-arora/laravel-dislikeable "~1.0"

Install and then run the migrations

'providers' => array(
	 Shubhang\DisLikeable\DisLikeableServiceProvider::class,
);
php artisan vendor:publish --provider="Shubhang\DisLikeable\DisLikeableServiceProvider"
php artisan migrate

Setup your models

class Article extends \Illuminate\Database\Eloquent\Model {
	use Shubhang\DisLikeable\DisLikeableTrait;
}

Sample Usage

$article->dislike(); // dislike the article for current user
$article->dislike($myUserId); // pass in your own user id
$article->dislike(0); // just add dislikes to the count, and don't track by user

$article->undislike(); // remove dislike from the article
$article->undislike($myUserId); // pass in your own user id
$article->undislike(0); // remove dislikes from the count -- does not check for user

$article->dislikeCount; // get count of dislikes

$article->dislikes; // Iterable Illuminate\Database\Eloquent\Collection of existing dislikes

$article->disliked(); // check if currently logged in user disliked the article
$article->disliked($myUserId);

Article::whereDisLiked($myUserId) // find only articles where user disliked them
	->with('dislikeCounter') // highly suggested to allow eager load
	->get();

Credits

  • Shubhang Arora