<?php
namespace Home\Controller;
use Think\Controller;
class CartController extends Controller{
public function __initialize() {
//当购物车session不存在,初始化,避免之后直接使用出错
if (!isset($_SESSION['cart'])) {
$_SESSION['cart'] = array();
}
}
public function index(){
$sql=M('product');
foreach($_SESSION['cart'] as $val){
$info = $sql->field('title,price,thumb,repertory')->find($val['id']); //获取产品信息
$lists[] = array_merge($val, $info); //合并,放到数组中(二维数组)
$total +=$val['number'] * $info['price']; //计算总计
}
$this->list=$lists;
$this->total=$total;
$this->display('Cart/cart');
}
public function add(){
$numb=I('post.numb');
$pid=I('post.pid');
$pid=isset($pid)?I('post.pid'):$this->redirect('Product_news/product_news');
$list= M('product')->where('id='.$pid)->find();
if(empty($_SESSION['uid'])){
if(isset($_SESSION['cart'][$pid])){
$_SESSION['cart'][$pid]['number']+= $numb;
}else{
$_SESSION['cart'][$pid]=array(
'id'=>$list['id'],
'number'=>$numb,
'date'=>time(),
);
}
}else{
$uid=$_SESSION['uid'];
if(M('cart')->where('uid='.$uid.'&&pid='.$pid)->find()){
M('cart')->where('uid='.$uid.'&&pid='.$pid)->save('number+='.$numb);
}else{
$data=array(
'uid'=>$uid,'pid'=>$pid,'number'=>$numb
);
$this->uid=$uid;
M('cart')->data($data)->add();
}
}
$this->redirect('Cart/index');
}
public function deletes(){
$pid=I('get.pid');
if(empty($_SESSION['uid'])){
unset($_SESSION['cart'][$pid]);
}else{
M('cart')->where('pid='.$pid.'&&uid='.$uid)->delete();
}
$this->success('删除成功',U('Cart/index'),3);
}
}