2017 © Pedro Peláez
 

library laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

image

ufutx/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  • Saturday, November 25, 2017
  • by glore
  • Repository
  • 1 Watchers
  • 5 Stars
  • 139 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 11 Forks
  • 1 Open issues
  • 8 Versions
  • 4 % Grown

The README.md

Laravel Favorite (Laravel 5 Package, forked from Ufutx/laravel-favorite)

Latest Version on Packagist ![Software License][ico-license] Build Status, (*1)

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature., (*2)

Index

Installation

1) Install the package via Composer, (*3)

$ composer require ufutx/laravel-favorite

2) Update config/app.php by adding an entry for the service provider., (*4)

'providers' => [
    // ...
    Ufutx\LaravelFavorite\FavoriteServiceProvider::class,
];

3) Migrate the database from the command line:, (*5)

php artisan migrate

Models

Your User model should import the Traits/Favoriteability.php trait and use it, that trait allows the user to favorite the models. (see an example below):, (*6)

use Ufutx\LaravelFavorite\Traits\Favoriteability;

class User extends Authenticatable
{
    use Favoriteability;
}

Your models should import the Traits/Favoriteable.php trait and use it, that trait have the methods that you'll use to allow the model be favoriteable. In all the examples I will use the Post model as the model that is 'Favoriteable', thats for example propuses only. (see an example below):, (*7)

use Ufutx\LaravelFavorite\Traits\Favoriteable;

class Post extends Model
{
    use Favoriteable;
}

That's it ... your model is now "favoriteable"! Now the User can favorite models that have the favoriteable trait., (*8)

Usage

The models can be favorited with and without an authenticated user (see examples below):, (*9)

Add to favorites and remove from favorites:

If no param is passed in the favorite method, then the model will asume the auth user., (*10)

``` php $post = Post::find(1); $post->addFavorite(); // auth user added to favorites this post $post->removeFavorite(); // auth user removed from favorites this post $post->toggleFavorite(); // auth user toggles the favorite status from this post, (*11)


If a param is passed in the favorite method, then the model will asume the user with that id. ``` php $post = Post::find(1); $post->addFavorite(5); // user with that id added to favorites this post $post->removeFavorite(5); // user with that id removed from favorites this post $post->toggleFavorite(5); // user with that id toggles the favorite status from this post

The user model can also add to favorites and remove from favrites:, (*12)

``` php $user = User::first(); $post = Post::first(); $user->addFavorite($post); // The user added to favorites this post $user->removeFavorite($post); // The user removed from favorites this post $user->toggleFavorite($post); // The user toggles the favorite status from this post, (*13)


### Return the favorite objects for the user: A user can return the objects he marked as favorite. You just need to pass the **class** in the `favorite()` method in the `User` model. ``` php $user = Auth::user(); $user->favorite(Post::class); // returns a collection with the Posts the User marked as favorite

Return the favorites count from an object:

You can return the favorites count from an object, you just need to return the favoritesCount attribute from the model, (*14)

``` php $post = Post::find(1); $post->favoritesCount; // returns the number of users that have marked as favorite this object., (*15)


### Return the users who marked this object as favorite You can return the users who marked this object, you just need to call the `favoritedBy()` method in the object ``` php $post = Post::find(1); $post->favoritedBy(); // returns a collection with the Users that marked the post as favorite.

Testing

The package have integrated testing, so everytime you make a pull request your code will be tested., (*16)

Change log

Please see CHANGELOG for more information on what has changed recently., (*17)

Contributions

Contributions are welcome and will be fully credited. We accept contributions via Pull Requests on Github., (*18)

Pull Requests

  • PSR-2 Coding Standard - Check the code style with $ composer check-style and fix it with $ composer fix-style., (*19)

  • Add tests! - Your patch won't be accepted if it doesn't have tests., (*20)

  • Document any change in behaviour - Make sure the README.md and any other relevant documentation are kept up-to-date., (*21)

  • Consider our release cycle - We try to follow SemVer v2.0.0. Randomly breaking public APIs is not an option., (*22)

  • Create feature branches - Don't ask us to pull from your master branch., (*23)

  • One pull request per feature - If you want to do more than one thing, send multiple pull requests., (*24)

  • Send coherent history - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting., (*25)

Security

Please report any issue you find in the issues page.
Pull requests are welcome., (*26)

Credits

License

The MIT License (MIT). Please see License File for more information., (*27)

The Versions

25/11 2017

dev-master

9999999-dev https://github.com/glore/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by glore zeng

laravel package remember follow favorite favourite laravel-favorite favoritable ufutx glore

25/11 2017

v1.3.3

1.3.3.0 https://github.com/glore/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by glore zeng

laravel package remember follow favorite favourite laravel-favorite favoritable ufutx glore

21/11 2017

v1.3.2

1.3.2.0 https://github.com/glore/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by glore zeng

laravel package remember follow favorite favourite laravel-favorite favoritable ufutx glore

08/05 2017

v1.3.1

1.3.1.0 https://github.com/glore/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by glore zeng

laravel package remember follow favorite favourite laravel-favorite favoritable ufutx glore

16/02 2017

v1.3.0

1.3.0.0 https://github.com/glore/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by glore zeng

laravel package remember follow favorite favourite laravel-favorite favoritable ufutx glore

16/02 2017

v1.2.0

1.2.0.0 https://github.com/glore/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by glore zeng

laravel package remember follow favorite favourite laravel-favorite favoritable ufutx glore

06/01 2017

v1.1.0

1.1.0.0 https://github.com/ChristianKuri/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Christian Kuri

laravel package remember follow favorite favourite christiankuri laravel-favorite favoritable

21/12 2016

v1.0.0

1.0.0.0 https://github.com/ChristianKuri/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Christian Kuri

laravel package remember follow favorite favourite christiankuri laravel-favorite favoritable