咱们秉承得益开源社区,也奉献开源社区的原则,咱们会陆续将正在线上使用的稳定包提交到 github 上,同时在后续的开源产品中,也会用到,你们能够放心使用。php
购物车在电商场景中基本是必须的一个模块,咱们基于 overtrue/laravel-shopping-cart 进行扩展开发。laravel
BTW: github 上已经有很是多和优秀的轮子,可是在实际应用场景中,会遇到不知足需求的状况,这个时候就须要改造下。另外貌似又见 overtrue 大神的轮子,主要 overtrue 的轮子很优秀,并且符合国人使用习惯。
主要实现了如下扩展:git
包地址: laravel-shopping-cart
composer require ibrand/laravel-shopping-cart:~1.0 -vvv
php artisan vendor:publish --provider="iBrand\Shoppingcart\ServiceProvider"
低于 Laravel5.5 版本github
config/app.php
文件中 'providers' 添加app
iBrand\Shoppingcart\ServiceProvider::class
config/app.php
文件中 'aliases' 添加composer
'Cart'=> iBrand\Shoppingcart\Facade::class
You can change data Storage in config/ibrand/cart.php
file.ide
'storage' => \iBrand\Shoppingcart\Storage\DatabaseStorage::class, 'storage' => \iBrand\Shoppingcart\Storage\SessionStorage::class,
If you use Database Storage, you need to execute php artisan migrate
ui
Add a new item.spa
Item | null Cart::add( string | int $id, string $name, int $quantity, int | float $price [, array $attributes = []] );
example:code
$row = Cart::add(37, 'Item name', 5, 100.00, ['color' => 'red', 'size' => 'M']); // Item: // id => 37 // name => 'Item name' // qty => 5 // price => 100.00 // color => 'red' // size => 'M' // total => 500.00 // __raw_id => '8a48aa7c8e5202841ddaf767bb4d10da' $rawId = $row->rawId();// get __raw_id $row->qty; // 5 ...
Update the specified item.
Item Cart::update(string $rawId, int $quantity); Item Cart::update(string $rawId, array $arrtibutes);
example:
Cart::update('8a48aa7c8e5202841ddaf767bb4d10da', ['name' => 'New item name'); // or only update quantity Cart::update('8a48aa7c8e5202841ddaf767bb4d10da', 5);
Get all the items.
Collection Cart::all();
example:
$items = Cart::all();
Get the specified item.
Item Cart::get(string $rawId);
example:
$item = Cart::get('8a48aa7c8e5202841ddaf767bb4d10da');
Remove the specified item by raw ID.
boolean Cart::remove(string $rawId);
example:
Cart::remove('8a48aa7c8e5202841ddaf767bb4d10da');
Clean Shopping Cart.
boolean Cart::destroy(); boolean Cart::clean(); // alias of destroy();
example:
Cart::destroy();// or Cart::clean();
READ MORE: ibrandcc/laravel-shopping-cart
欢迎你们 star 和提交 issue :)