Likeable Trait
Allows for easy creation of a user address book system. Address book functions similar to Amazon or Paypal user address book storage. Users can manage mutliple persona addresses. Fully open sourced under the MIT liscense and free for all to copy/use/and modify.
Laravel Likeable Plugin
Important Note: As of version 1.2 I renamed Conner\Likeable\LikeableTrait
to Conner\Likeable\Likeable
Trait for Laravel Eloquent models to allow easy implementation of a "like" or "favorite" or "remember" feature.
Laravel 5 Documentation
Laravel 4 Documentation
Composer Install (for Laravel 5)
composer require rtconner/laravel-likeable "~1.2"
Install and then run the migrations
'providers' => [
\Conner\Likeable\LikeableServiceProvider::class,
],
php artisan vendor:publish --provider="Conner\Likeable\LikeableServiceProvider" --tag=migrations
php artisan migrate
Setup your models
class Article extends \Illuminate\Database\Eloquent\Model {
use \Conner\Likeable\LikeableTrait;
}
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