lamalama/laravel-wishlist

Make your models wishlistable

0.2.1 2020-12-06 08:07 UTC

This package is auto-updated.

Last update: 2024-05-18 10:07:36 UTC


README

Latest Version on Packagist Software License Total Downloads

Make your Eloquent models wishlistable.

Install

Via Composer

$ composer require lamalama/laravel-wishlist

You can publish the migration with:

php artisan vendor:publish --provider="LamaLama\Wishlist\WishlistServiceProvider" --tag="migrations"

After publishing the migration you can create the wishlist table by running the migrations:

php artisan migrate

You can optionally publish the config file with:

php artisan vendor:publish --provider="LamaLama\Wishlist\WishlistServiceProvider" --tag="config"

Prepare user model

Import the HasWishlists trait to your User model file.

use LamaLama\Wishlist\HasWishlists;

Add the HasWishlists trait to your User model.

use HasWishlists;

Prepare wishlistable model(s)

Optionally you can add the Wishlistable trait to Eloquent models that you want to give additional methods. Import the Wishlistable trait to your wishlistable model file.

use LamaLama\Wishlist\Wishlistable;

Add the Wishlistable trait to your wishlistable model.

use Wishlistable;

Use

You can add any Eloquent model as 'wish' to the User model:

$user = User::find(1);
$product = Product::find(1);
$user->wish($product);

Optionally you can set the name of the wishlist to which you want to add the wish. When no list is specified the wish will be stored on the 'default' list. The name of the default list can be adjusted in the config file.

$user->wish($product, 'Christmas presents');

You can remove any Eloquent model as 'wish' from the User model:

$user->unwish($product);
$user->unwish($product, 'Christmas presents');

Get all wishlists

$user->wishlists();

Get a specific wishlist

$user->wishlist('Christmas presents');

Change log

Please see CHANGELOG for more information on what has changed recently.

Credits

License

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