0
我在使用YII時仍然是一個新手,但過去幾天我一直在使用會話變量,而且我似乎無法理解我的錯誤背後的概念。任何建議將被認真考慮。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;
}
我的刪除功能似乎根本不起作用,無論我怎麼處理它。我將Session數組轉換爲臨時數組的原因是試圖繞過「如果一個函數內的全局變量是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(Yii :: app() - > session ['nutrition']);'在'unset($ nutritionArray [$ pageId]);'之後',也可能要'print_r ($ nutritionArray);'確保你有正確的數據。 – Pitchinnate
另外,這可能是問題的一部分:https://code.google.com/p/yii/issues/detail?id=1681 – Pitchinnate