【发布时间】:2013-09-02 08:55:03
【问题描述】:
在使用 YII 方面我还是个新手,但过去几天我一直在使用会话变量,我似乎无法理解错误背后的概念。任何建议将不胜感激。
到目前为止,我的 add 函数运行良好,目前我的目的是跟踪添加到我的会话变量营养中的最后 3 个变量。
public function addSessionFavourite($pageId)
{
$page = Page::model()->findByPk($pageId);
$categoryName = $page->getCategoryNames();
if($categoryName[0] == 'Nutrition')
{
if(!isset(Yii::app()->session['nutrition']))
{
Yii::app()->session['nutrition'] = array();
}
$nutrition = Yii::app()->session['nutrition'];
array_unshift($nutrition, $pageId);
array_splice($nutrition, 3);
Yii::app()->session['nutrition'] = $nutrition;
}
无论我尝试用它做什么,我的删除功能似乎都不起作用。我将会话数组转移到临时数组的原因是试图绕过“如果一个全局变量在函数内部是 unset(),则只有局部变量被破坏。调用环境中的变量将保留与调用 unset() 之前的值相同。”但这完全失败了。
public function removeSessionFavourite($pageId)
{
$page = Page::model()->findByPk($pageId);
$categoryName = $page->getCategoryNames();
if($categoryName[0] == 'Nutrition')
{
if(!isset(Yii::app()->session['nutrition']))
{
return true;
}
$nutritionArray = Yii::app()->session['nutrition'];
unset($nutritionArray[$pageId]);
Yii::app()->session['nutrition'] = $nutritionArray;
}
我们将不胜感激任何建议或朝着正确方向前进。
【问题讨论】:
-
在
unset($nutritionArray[$pageId]);之后尝试unset(Yii::app()->session['nutrition']);,也可以尝试print_r($nutritionArray);以确保其中的数据正确。 -
这也可能是问题的一部分:code.google.com/p/yii/issues/detail?id=1681
标签: php arrays session yii unset