Yii - Manipulowanie zmienną sesssion

Nadal jestem nowicjuszem, jeśli chodzi o używanie YII, ale pracowałem ze zmiennymi sesji przez ostatnie kilka dni i nie wydaje mi się, żebym mógł zrozumieć koncepcję mojego błędu. Wszelkie porady będą mile widziane.

Moja funkcja dodawania działa do tej pory doskonale, ponieważ moim celem jest śledzenie ostatnich 3 zmiennych dodanych do mojego zmiennego żywienia sesji.

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;
    }

Moja funkcja usuwania nie działa w ogóle, niezależnie od tego, co próbuję z nią zrobić. Powodem, dla którego przesyłam tablicę sesji do tablicy tymczasowej, było próba obejścia „Jeśli zmienna globalna jest unset () wewnątrz funkcji, niszczona jest tylko zmienna lokalna. Zmienna w środowisku wywołującym zachowa ta sama wartość co przed wywołaniem unset (). " Ale to była całkowita porażka.

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;
    }

Każda rada lub dążenie do właściwego kierunku zostanie doceniona.

questionAnswers(1)

yourAnswerToTheQuestion