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



例如,我有会话"globalunit",我想使用setState函数设置该会话值。因此,我使Controller类中的actionSetUnit和actionGetUnit函数在View类中被ajax 调用

//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值时,结果/响应不稳定。有时,根据我在组合单元中选择的最后一个单元,答案是真的。有时响应为false(不会根据我在组合单元中选择的最后一个单元的值而改变):(…
也许我调用了太多setState函数来设置同名的值会话。
我的代码中缺少什么??

确保仅在$_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值,以确保它在每次调用时都被填充。

相关内容

最新更新