frontend\controllers\CartController::actionSubtract PHP Метод

actionSubtract() публичный Метод

public actionSubtract ( )
    public function actionSubtract()
    {
        $goodsId = (int) Yii::$app->request->post('goodsId');
        $output = ['status' => 'no'];
        Yii::$app->response->format = Response::FORMAT_JSON;
        $goods = Goods::findOne(['id' => $goodsId, 'status' => Goods::STATUS_NORMAL]);
        if (!$goods) {
            return $output;
        }
        $model = CartGoods::findOne(['goods_id' => $goodsId, 'user_id' => Yii::$app->user->id]);
        if ($model) {
            $model->count--;
            if ($model->count < 1) {
                $model->delete();
            } else {
                if ($model->count > $goods->surplus) {
                    $model->count = $goods->surplus;
                }
                if (!$model->save(false)) {
                    return $output;
                }
            }
        }
        $output = ['status' => 'ok', 'name' => $goods->name, 'price' => $goods->price, 'surplus' => $goods->surplus, 'cart' => $model ? $model->count : 0];
        return $output;
    }