例如,我有会话“ globalunit”,我想使用setState函数设置该会话值。所以我在Controller类中使actionSetUnit和actionGetUnit函数由ajax在View类中调用
//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函数来设置具有相同名称的值会话。
我的代码中缺少任何内容吗?
最佳答案
确保仅在填充$ _POST时设置状态
//to set globalunit
public function actionSetUnit(){
if (isset($_POST['unit']) && $_POST['unit'] !== null)
Yii::app()->user->setState('globalunit',$_POST['unit']);
}
我想您有时会用空值覆盖它。尝试对您的$ _POST值进行Yii :: trace()或Yii :: log(),以确保每次调用都可以填充该值。