在会话中存储数组 [英] Storing array in sessions

查看:55
本文介绍了在会话中存储数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将一些数据作为数组存储在会话中,但该函数似乎不起作用.它不会引发任何错误,但每次我向其中添加数据时,它只会覆盖以前的数据.我正在使用 yii,这是操作

I am trying to store some data as an array in the session but the function does not seem to be working.it does not throw any error but every time i add data to it, it just overwrites the previous data. I am using yii and here is the action

public function actionStoreProducts($name)
        {
            $name=trim(strip_tags($name));
            if(!empty($name))
            {
                if(!isset(Yii::app()->session['_products']))
                {
                    Yii::app()->session['_products']=array($name);  
                    echo 'added';
            }
            else
            {

                $myProducts = Yii::app()->session['_products'];
                $myProducts[] = $name;
                Yii::app()->session['products'] = $myProducts;
                echo 'added';

            }

        }

谁能建议我如何才能达到预期的结果?

Can anyone suggest me how can i achieve the desired result?

推荐答案

会话属性只读我认为正确的方法是:

session property read-only i think the correct aproach is :

function actionStoreProducts($name) {
    $session = new CHttpSession;               //add this line
    $session->open();                          //add this line
    $name = trim(strip_tags($name));
    if (!empty($name)) {
        if (!isset(Yii::app()->session['_products'])) {
            $session->add('_products', array($name));   //replace this line
            echo 'added';
        } else {

            $myProducts = Yii::app()->session['_products'];
            $myProducts[] = $name;
            $session->add('_products', $myProducts);    //replace this line
            echo 'added';
        }
    }
}

这篇关于在会话中存储数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆