1.商品列表中点击加入购物车,则跳转到购物车列表,效果如图所示:

视图代码goods/list.php中。代码如下:

<?php echo Html::a('加入购物车',['cart','id'=>$info['goods_id']])?>

控制器GoodsController.php中,开启session.

use yii\web\Session;
$session = new Session;
$session->open();
/**
* 加入购物车
*/
public function actionCart($id){
//获取添加到购物车的商品的信息
$goods_model=new Goods();
$good_info=$goods_model->findOne($id);
//信息为空或者数量<0,则不存在要购买的商品,否则把要购买的商品添加到session中
if(empty($good_info) || count($good_info)<0){
exit("No Goods");
}else{
$good_info['num']=1;
//判断购物车中是否已经存在该商品,存在的话数量叠加,
if(isset($_SESSION["shoplist"][$good_info['goods_id']])){
//若存在数量叠加
$num=$_SESSION["shoplist"][$good_info['goods_id']]['num'];
$num++;
$_SESSION["shoplist"][$good_info['goods_id']]['num']=$num;
//$_SESSION["shoplist"][$good_info['goods_id']]['num'] ++;
}else{
//若不存在,作为新购买的商品添加到购物车中
$_SESSION["shoplist"][$good_info['goods_id']]=$good_info;
}
// $_SESSION['shoplist'][]=$good_info;
return $this->redirect('./index.php?r=cart/list');
}
}

2.购物车列表页:

use yii\web\Session;

$session = new Session;
$session->open();
/**
* 购物车列表
*/
public function actionList(){
$cart_list=$_SESSION['shoplist'];
return $this->render('list',['cart_list'=>$cart_list]);
}

3.删除购物车中的商品和清空购物车
视图cart/list.php中
<?php echo Html::a('删除',['delete','id'=>$info['goods_id']],['onclick'=> 'return confirm("Confirm to delete?")'])?>
控制器CartController.php中
/**
* 购物车中的单一商品删除
*/
public function actionDelete(){
$cart_list=$_SESSION['shoplist'];
//判断是删除一个商品还是请空购物车
if($_GET['id']){
//从session中删除指定的商品信息
unset($_SESSION["shoplist"][$_GET['id']]);
}else{
//清空session中商品,清空购物车
unset($_SESSION["shoplist"]);
}
return $this->redirect("./index.php?r=cart/list");
}

yii2购物车实现的更多相关文章

  1. yii2 restful api——app接口编程实例

    <?php namespace common\components; use common\models\Cart; use common\models\User; use Yii; use y ...

  2. 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车

     阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...

  3. session实现购物车

    为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购 ...

  4. 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文

    阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...

  5. PHP之购物车的代码

    该文章记录了购物车的实现代码,仅供参考 book_sc_fns.php <?php include_once('output_fns.php'); include_once('book_fns. ...

  6. Yii2的深入学习--行为Behavior

    我们先来看下行为在 Yii2 中的使用,如下内容摘自 Yii2中文文档 行为是 [[yii\base\Behavior]] 或其子类的实例.行为,也称为 mixins,可以无须改变类继承关系即可增强一 ...

  7. 使用session页面控制登录入口及购物车效果的实现

          由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容.实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只 ...

  8. 网站实现微信登录之回调函数中登录逻辑的处理--基于yii2开发的描述

    上一篇文章网站实现微信登录之嵌入二维码中描述了如何在自己的登录页面内嵌入登录二维码,今天的这篇文章主要是描述下在扫码成功之后微信重定向回网站后登录逻辑的处理,其实也就是验证身份信息,授权用户登录的逻辑 ...

  9. 网站实现微信登录之嵌入二维码——基于yii2开发的描述

    之前写了一篇yii2获取登录前的页面url地址的文章,然后发现自己对于网站实现微信扫码登录功能的实现不是很熟悉,所以,我会写2-3篇的文章来描述下一个站点如何实现微信扫码登录的功能,来复习下微信扫码登 ...

随机推荐

  1. Dynamics AX Read OLEDB

    static System.Data.DataTable getOLEDB_Record(str _dbPath,str _query) { System.Data.OleDb.OleDbConnec ...

  2. JavaScript实现进入某一页面时自动将鼠标光标放在某一textbox上

    <script language="javascript" type="text/javascript"> var txtText0 = " ...

  3. MFC之向导页、消息框、文件选择、字体、颜色(三)

    属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面.另外,我们在创建MFC工程时使用的向导对话框也属于属性页对话框,它通过点击“ ...

  4. DelayQueue

    1.结构 使用的是PriorityQueue来作为底层的存储 元素需要实现Delayed接口,该接口继承了comparable接口 DelayQueue的队头元素是根据comparable排在队首的元 ...

  5. http://blinkfox.com/shi-yong-spring-aoplai-tong-ji-fang-fa-de-zhi-xing-shi-jian/

    http://blinkfox.com/shi-yong-spring-aoplai-tong-ji-fang-fa-de-zhi-xing-shi-jian/ spring-aop.xml @Com ...

  6. enableEventValidation是干什么的?

    回发或回调参数无效.在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEve ...

  7. OC initialize和init

    Objective-C很有趣的一个地方是,它非常非常像C.实际上,它就是C语言加上一些其他扩展和一个运行时间(runtime). 有了这个在每个Objective-C程序中都会起作用的附加运行时间,给 ...

  8. linux dmesg命令参数及用法详解(linux显示开机信息命令)

    linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...

  9. UIImageView属性

        1.Image 设置图片,默认显示 UIImageView *_imageView = [[UIImageViewalloc]init]; _imageView.image = [UIImag ...

  10. 汉字拼音带声调和发音mp3文件(C#源程序)

    7800多个汉字的拼音带声调以及全部mp3读音文件,附带一个C#实例程序源代码 读音文件按拼音和声调命名,方便调用 获取全部源代码