Yii - Manipulieren einer Sitzungsvariablen

Ich bin noch ein Neuling, wenn es um die Verwendung von YII geht, aber ich habe in den letzten Tagen mit Sitzungsvariablen gearbeitet, und ich kann anscheinend nicht verstehen, was hinter meinem Fehler steckt. Jeder Rat wird geschätzt.

Meine Add-Funktion funktioniert bisher einwandfrei, um die letzten 3 Variablen, die zu meiner Session-Variablenernährung hinzugefügt wurden, im Auge zu behalten.

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

Meine Entfernungsfunktion scheint überhaupt nicht zu funktionieren, egal was ich damit zu tun versuche. Der Grund, warum ich das Sitzungsarray in ein temporäres Array übertrage, war der Versuch, das Problem zu umgehen: "Wenn eine globalisierte Variable innerhalb einer Funktion nicht gesetzt () ist, wird nur die lokale Variable zerstört derselbe Wert wie vor dem Aufruf von unset (). " Aber es war ein totaler Misserfolg.

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

Jeder Rat oder Drang in die richtige Richtung wird geschätzt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage