1. Go to this page and download the library: Download dive-be/laravel-wishlist library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dive-be / laravel-wishlist example snippets
return [
/**
* The authentication guard to use when using the `eloquent` or `upgrade` drivers.
*/
'auth_guard' => config('auth.defaults.guard'),
'cookie' => [
/**
* You may choose to scope the cookies to a particular subdomain.
* Especially useful when serving multiple apps.
* The default (no scoping) will suffice for most apps, though.
*/
'domain' => env('WISHLIST_COOKIE_DOMAIN', env('SESSION_DOMAIN')),
/**
* Time-to-Live in minutes. Default 43200 (1 month).
*/
'max_age' => env('WISHLIST_COOKIE_MAX_AGE', 43_200),
/**
* You may customize the name of the cookie. Completely optional.
*/
'name' => env('WISHLIST_COOKIE_NAME', 'wishlist'),
],
/**
* Supported drivers:
* - "array" (only available during the current request lifecycle)
* - "cookie" (persists the user's wishes as a serialized string inside a cookie)
* - "eloquent" (persists the users' wishes to the `wishes` table)
* - "upgrade" (uses the cookie driver if a user is not authenticated, otherwise uses the eloquent driver)
*/
'driver' => env('WISHLIST_DRIVER', Dive\Wishlist\WishlistManager::ELOQUENT),
'eloquent' => [
/**
* The model that should be used with this driver.
* It must be, or extend the base Wish model.
*/
'model' => Dive\Wishlist\Models\Wish::class,
/**
* You may choose to provide a context for the saved wishes in the database.
* Particularly useful when serving multiple apps. The default will suffice for most apps, though.
*/
'scope' => 'default',
/**
* The user model of your application. For most apps, the default will suffice.
* However, if you wish, you may customize that here. This is used for the Wish model's
* user relationship so you can display the owner of the wish in e.g. Laravel Nova.
*/
'user' => config('auth.providers.users.model'),
],
];
use Dive\Wishlist\Contracts\Wishable;
use Dive\Wishlist\Models\Concerns\CanBeWished;
class Product extends Model implements Wishable
{
use CanBeWished;
}
use Dive\Wishlist\Models\Concerns\InteractsWithWishlist;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use InteractsWithWishlist;
}
$user = auth()->user();
$user->wish(Product::first()); // adds the product to the wishlist
$user->unwish(Product::first()); // removes the product from the wishlist
$user->wishes(); // retrieves all of the user's wishes
use Dive\Wishlist\Facades\Wishlist;
Wishlist::all();
use Wishlist;
Wishlist::all();
wishlist()->all();
use Dive\Wishlist\Contracts\Wishlist;
public function index(Wishlist $wishlist)
{
return view('wishlist.index')->with('wishes', $wishlist->all());
}
app('wishlist')->all();
$wish = Wishlist::add($product);
$wishes = Wishlist::all();
$wish = Wishlist::find($product);
// ✅ Collection only contains Wishables of type "product"
$wishes = Wishlist::all()->load(['productable', 'variant']);
use Dive\Wishlist\Wish;
Route::delete('wishlist/{wish}/delete', function (Wish $wish) {
$wish->delete();
return redirect()->to('dashboard');
});
class ClearWishlistCommand extends Command
{
public function handle()
{
$user = User::first();
Wishlist::forUser($user)->purge();
}
Wishlist::extend('redis', function () {
return new RedisWishlist();
});
use App\Http\Livewire\HeartButton;
use Database\Factories\ProductFactory;
use Dive\Wishlist\Facades\Wishlist;
use function Pest\Livewire\livewire;
test('A wish is added when the visitor clicks on the heart icon', function () {
Wishlist::fake();
livewire(HeartButton::class)->call('wish', ProductFactory::new()->create()->getKey());
expect(Wishlist::count())->toBe(1);
});
bash
php artisan wishlist:install
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.