例如,我有会话'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函数来设置具有相同名称的值会话。
我的代码中缺少什么?
答案 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值,以确保每次调用都填充它。