successgo

第 646 位会员

会员
个人信息
个人成就
  • 发表文章次数 28
  • 发布回复次数 147
  • 个人主页浏览次数 58
购物车能不能做持久化处理?5年前

因为 session 过期后,再从 session 中获取 cart_id,这时是获取不到的。获取不到的情况下,又会重新创建购物车,因为并不是同一个购物车了。这么一来,结果就是登录的用户会存在多个购物车。

同时还有另外一个问题,不同设备上的购物车没有同步。 问题不存在的。

购物车能不能做持久化处理?5年前

已通过重写 Quote 服务里的 getCartId 方法实现了:登录用户只会有一个购物车。

代码如下:

public function getCartId()
    {
        if (!$this->_cart_id) {
            $cart_id = Yii::$service->session->get(self::SESSION_CART_ID);

            if (! $cart_id) {
                if (! Yii::$app->user->isGuest) {
                    $customerId = Yii::$app->user->getId();
                    $cart = $this->getCartByCustomerId($customerId);
                    if ($cart && $cart['cart_id']) {
                        $this->setCartId($cart['cart_id']);
                    }
                }
            } else {
                $this->_cart_id = $cart_id;
            }
        }

        return $this->_cart_id;
    }
为什么 composer 安装后,缺少 vender文件夹啊5年前

@leenin 你提供一下你执行 composer install -vvv 命令后的输出,我相信,如果没有安装成功,应该会有报错提示;如果正常安装 完成,vendor 目录是有的。

Your Site Analytics