Yii:调用setState / Set Session超过1次时的不稳定getState函数结果

时间:2012-11-30 03:45:07

标签: php javascript ajax yii

例如,我有会话'globalunit',我想设置该会话值使用setState函数。所以我在我的Controller类中通过ajax在我的View类中调用actionSetUnit和actionGetUnit函数

 //to set globalunit
 public function actionSetUnit(){
   if (isset($_POST['unit']) && $_POST['unit'] !== null){
         Yii::app()->user->setState('globalunit',$_POST['unit']);
         echo 'globalunit value now is :'.Yii::app()->user->getState('globalunit');
    }
 }

 //to get globalunit
 public function actionGetUnit(){
    echo 'globalunit value now is :'.Yii::app()->user->getState('globalunit');
 }

我经常在我的视图中调用actionSetUnit,当我在视图中更改/单击我的组合单元时。但是当我在我的视图中调用getUnit函数来显示globalunit值时,结果/响应不稳定。根据我在组合单位中选择的最后一个单位,有时候响应是真的。有时责任是假的(不是根据我在组合单位中选择的最后一个单位的值来改变):( ...
也许我太多调用setState函数来设置具有相同名称的值会话。
我的代码中缺少什么?

1 个答案:

答案 0 :(得分:1)

确保仅在$ _POST填充时设置状态

 //to set globalunit
 public function actionSetUnit(){
    if (isset($_POST['unit']) && $_POST['unit'] !== null)
        Yii::app()->user->setState('globalunit',$_POST['unit']);
 }

我猜你有时用空值覆盖它。尝试Yii :: trace()或Yii :: log()你的$ _POST值,以确保每次调用都填充它。