php商城购物车

<?php

namespace app\api\controller\shop;

use app\common\controller\Api;

class Cart extends Api
{

    protected $noNeedLogin = '';
    protected $noNeedRight = ['*'];
    protected $layout      = '';

    //添加商品到购物车
    public function buy()
    {
        $good_id = $this->request->param('good_id');
        $name = $this->request->param('name');
        $code = $this->request->param('code');
        $price = $this->request->param('price');
        $img = $this->request->param('img');

        $mycart = session('mycart');
        //先判断这个变量是否是数组,可以得到以前是否买过东西
        if(is_array($mycart)){
            //是数组,买过东西
            //买过东西分两种,这种东西是否买过,买过对其数量加1,没买过,将此商品id和name值组建成一个一维数组
            if(array_key_exists($good_id.'|'.$code,$mycart)){
                //拿出这个商品的信息
                $uu = $mycart[$good_id.'|'.$code];
                $uu['num'] =  bcadd($uu['num'],1);
                $uu['price'] = bcadd($uu['price'],$price,2);
                //该商品加1后重新赋值
                $mycart[$good_id.'|'.$code] = $uu;
            }else{
                $mycart[$good_id.'|'.$code] = array('good_id'=>$good_id,'name'=>$name,'img'=>$img,'code'=>$code,'price'=>$price,'num'=>1);
            }
        }else{
            $mycart[$good_id.'|'.$code] = array('good_id'=>$good_id,'name'=>$name,'img'=>$img,'code'=>$code,'price'=>$price,'num'=>1);
        }
        //处理完后,重新将此数据放入session中,便可以在各个页面进行赋值
        session('mycart',$mycart);

        $this->success('添加成功');
    }



    //从购物车移除该商品
    public function delete()
    {
        $good_id = $this->request->param('good_id');
        $code = $this->request->param('code');

        $mycart = session('mycart');;//拿出session里的二维数组
        foreach($mycart as $key=>$proId)//遍历该二维数组中的键值,这里也就是商品的id
        {
            if($key==$good_id.'|'.$code)//判断键值等于传过来的商品id
            {
                unset($mycart[$key]);//清除该一维数组
            }
        }
        session('mycart',$mycart);

        $this->success('移除成功');
    }


    //购物车商品数量减1
    public function reduce()
    {
        $good_id = $this->request->param('good_id');
        $code = $this->request->param('code');
        $price = $this->request->param('price');
        $mycart = session('mycart');//拿出session里的二维数组
        foreach($mycart as $key=>$proId)//遍历该二维数组中的键值,这里也就是商品的id
        {
            if($key==$good_id.'|'.$code)//判断键值等于传过来的商品id
            {
                $uu = $mycart[$key];
                $uu['num'] = bcsub($uu['num'],1);
                $uu['price'] = bcsub($uu['price'],$price,2);
                //减1后等于0,移除该商品
                if($uu['num'] == 0 || $uu['num'] < 0){
                    unset($mycart[$key]);//清除该一维数组
                }else{
                    $mycart[$key] = $uu;
                }

            }
        }
        session('mycart',$mycart);

        $this->success('操作成功');
    }


    //购物车页面
    public function cart_list()
    {
        $mycart = session('mycart');
        $this->success('查询成功',$mycart);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hanzhuhuaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值