此包已废弃,不再维护。未建议替代包。

用于Laravel 5的简单基于会话的购物车,用于与现有产品模型配合使用

v1.1.0 2016-01-24 09:53 UTC

This package is not auto-updated.

Last update: 2018-03-28 13:28:43 UTC


README

Laravel 5.1+的简单基于会话的购物车。用于与现有产品模型配合使用。

需求

  • Laravel 5.1+

安装

使用 composer require jared0430/cart ~1.1 安装此包

或将它添加到 composer.json

{
    "require": {
        "jared0430/cart": "~1.1"
    }
}

更新composer后,将服务提供者添加到 config/app.php 中的 providers 数组

Jared0430\Cart\CartServiceProvider::class,

并将外观添加到 config/app.php 中的 aliases 数组

'Cart' => Jared0430\Cart\Facades\Cart::class,

更改会话密钥

默认使用 cart 作为会话密钥。您可以通过发布配置文件来更改它

php artisan vendor:publish

这将创建一个新的配置文件 cart.php

方法

add

将产品添加到购物车,如果已存在则增加数量

Cart::add((int)$product_id, (int)$quantity_to_add);

subtract

从购物车中的产品数量中减去

Cart::subtract((int)$product_id, (int)$quantity_to_subtract);

update

直接修改产品的数量。您可以选择是否增加数量或直接用 $add 参数替换它

Cart::update((int)$product_id, (int)$quantity, (bool)$add);

remove

完全从购物车中删除产品

Cart::remove((int)$product_id);

has

确定产品是否在购物车中

Cart::has((int)$product_id);

返回 truefalse

products

获取购物车中所有项目的列表

Cart::products();

返回一个 集合 实例

count

获取购物车中唯一项目的总数

Cart::count();

返回一个 int

countQty

获取购物车中项目的总数

Cart::countQty();

返回一个 int

clear

清空购物车

Cart::clear();

事件

每次更新购物车时都会触发事件,因此您可以挂钩以执行自己的逻辑。

要监听此事件,您需要在 App\Providers\EventServiceProvider 中注册一个新的 Listener

protected $listen = [
    'Jared0430\Cart\Events\CartWasUpdated' => [
        'App\Listeners\MyCartListener'
    ]
];

现在运行 php artisan event:generate,这将创建 App\Listeners\MyCartListener

注意,Laravel 错误地引用了 Jared0430\Cart\Events\CartWasUpdated App\Events\Jared0430\Cart\Events\CartWasUpdated,因此您需要更正这一点

您可以通过使用$event->cart来访问此监听器的handle方法中的购物车,它返回一个集合实例。