Yii - манипулирование переменной sesssion
Я все еще новичок, когда дело доходит до использования YII, но я работал с переменными сессии в течение последних нескольких дней, и я не могу понять концепцию, лежащую в основе моей ошибки. Любой совет будет оценен.
Моя функция добавления до сих пор работает отлично, для моей текущей цели отслеживания последних 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;
}
Любой совет или толчок в правильном направлении будет оценен.