rtconner / laravel-likeable
Trait for Laravel Eloquent models to allow easy implementation of a 'like' or 'favorite' or 'remember' feature.
Installs: 333 579
Dependents: 5
Suggesters: 0
Security: 0
Stars: 401
Watchers: 16
Forks: 49
Open Issues: 9
Requires
- php: ^7.3|^8.0
- illuminate/database: >=8.0
- illuminate/support: >=8.0
Requires (Dev)
- mockery/mockery: 1.*
- orchestra/testbench: 6.*
- phpunit/phpunit: 9.*
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-11-11 00:49:44 UTC
README
Trait for Laravel Eloquent models to allow easy implementation of a "like" or "favorite" or "remember" feature.
Composer Install
composer require rtconner/laravel-likeable
Then run the migrations
php artisan migrate
Setup your models
class Article extends \Illuminate\Database\Eloquent\Model { use \Conner\Likeable\Likeable; }
Sample Usage
$article->like(); // like the article for current user $article->like($myUserId); // pass in your own user id $article->like(0); // just add likes to the count, and don't track by user $article->unlike(); // remove like from the article $article->unlike($myUserId); // pass in your own user id $article->unlike(0); // remove likes from the count -- does not check for user $article->likeCount; // get count of likes $article->likes; // Iterable Illuminate\Database\Eloquent\Collection of existing likes $article->liked(); // check if currently logged in user liked the article $article->liked($myUserId); Article::whereLikedBy($myUserId) // find only articles where user liked them ->with('likeCounter') // highly suggested to allow eager load ->get();
Credits
- Robert Conner - http://smartersoftware.net