2017 © Pedro Peláez
 

yii2-extension yii2-shop-basket

Yii2 crud actions

image

andreykluev/yii2-shop-basket

Yii2 crud actions

  • Friday, June 10, 2016
  • by AndreyKluev
  • Repository
  • 2 Watchers
  • 3 Stars
  • 332 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 4 Forks
  • 7 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

ShopBasket - actions & behaviors extension for Yii

Установка

В composer.json:, (*1)

"require": {
    ...
    "andreykluev/yii2-shop-basket":"dev-master"
},

Использование

Для изменения корзины, нужно гетом передать id (id AR-модели) и count (количество). Если id == 0 - добавиться новый товар, если count == 0 - товар удалиться из корзины, в противном случае измениться количество., (*2)

``` php use andreykluev\shopbasket\BasketAction;, (*3)

class BasketController extends Controller {, (*4)

...

public function actions()
{
    return array(
        'update' => [
            'class' => BasketAction::className(),
            'onBeforeAction' =>  [$this, 'beforeUpdate'],
            'onAfterAction' =>  [$this, 'afterUpdate'],
        ],

        ...
    );
}

public function beforeUpdate()
{
    // Ваш код
}

public function afterUpdate($isUpdate = false)
{
    // Ваш код
}

### Подключаем компонент ### ``` php use andreykluev\shopbasket\behaviors\BasketUserBehavior; class User extends ActiveRecord implements IdentityInterface { ... public function behaviors() { return [ BasketUserBehavior::className(), ]; } ...

``` php use andreykluev\shopbasket\behaviors\BasketProductBehavior;, (*5)

class Product extends ActiveRecord { ... public function behaviors() { return [ BasketUserBehavior::className(), ]; } ..., (*6)


``` php 'components' => [ ... 'basket' => [ 'class' => 'andreykluev\shopbasket\BasketComponent', 'userClass' => 'common\models\User', 'productClass' => 'common\models\Product', 'onLogin' => 'merge' ]

В любом месте приложение можно обратиться к корзине следующим образом:, (*7)

php Yii::$app->basket->getBasketProducts(); Yii::$app->basket->getBasketCost(); Yii::$app->basket->getBasketCount(); Yii::$app->basket->getBasketTotal();, (*8)

Методы

getBasketProducts() - Возвращает список товаров в корзине, (*9)

getBasketCost() - Возвращает сумму товаров в корзине, (*10)

getBasketCount() - Возвращает количество наименований товара в корзине, (*11)

getBasketTotal() - Возвращает количество единиц товаров в корзине, (*12)

Варианты onLogin при авторизации пользователя

sum - корзина в сессии и корзина в БД (если такая была) будут объеденины, а кол-во одинаковых товаров просуммируются, (*13)

new - корзина в БД будет полностью заменена новой, (*14)

merge - в БД будут добавлены только новые товары, (*15)

max - в БД будут добавлены новые товары, а у совпадающих сохраниться наибольшее кол-во, (*16)

The Versions

10/06 2016

dev-master

9999999-dev

Yii2 crud actions

  Sources   Download

BSD-3-Clause

The Requires

 

yii2 basket