将项目添加到会话中

时间:2014-02-09 00:40:56

标签: php session yii

我对会话很新...如何添加项目?我的商品确实已添加,但它会继续用另一个具有相同数量的商品替换现有商品。

所以我添加项目A数量3,然后添加项目B数量1.它显示,项目B数量3.项目A消失。

我有:

$addItem = array(
    "product_id" => $id,
    "quantity" => $quantity,
    );
    Yii::app()->session['cart']= $addItem;

然后我跟着this,似乎没有添加任何内容?:

public function actionBasket($id)
    {
        $session=new CHttpSession;
        $session->open();

        $quantity = 1;

        if (!isset(Yii::app()->session['carts'])) {
                Yii::app()->session['carts'] = 
                array(
                "product_id" => $id,
                "quantity" => $quantity);
            } 
            else 
            {
                $products = Yii::app()->session['carts'];
                $products[] = array(
                        "product_id" => $id,
                        "quantity" => $quantity);
                Yii::app()->session['carts'] = $products;
            }

2 个答案:

答案 0 :(得分:0)

你可能会发现你正在覆盖那里的会话。

也许

Yii::app()->session['cart']['item'];

答案 1 :(得分:0)

试试这个:

Yii::app()->session['carts'][] = 
   array(
      "product_id" => $id,
      "quantity" => $quantity
   );

每次都会在会话中附加一个新产品,而不是覆盖它。您可以使用以下方式访问项目:

foreach (Yii->app()->session['carts'] as $item) {
   ...
}