Yii - Manipulando uma variável de sessão
Eu ainda sou um novato quando se trata de usar YII, mas eu tenho trabalhado com variáveis de sessão nos últimos dias, e não consigo entender o conceito por trás do meu erro. Qualquer conselho será apreciado.
Minha função add funciona perfeitamente até agora, para o meu objetivo atual de acompanhar as últimas 3 variáveis adicionadas à minha nutrição variável de sessão.
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;
}
Minha função de remoção parece não funcionar, não importa o que eu tente fazer com ela. A razão pela qual eu estou transferindo a matriz de sessão para uma matriz temporária era tentar contornar o "Se uma variável globalizada é unset () dentro de uma função, somente a variável local é destruída. A variável no ambiente de chamada reterá a mesmo valor que antes de unset () ser chamado. " Mas foi um fracasso total.
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;
}
Qualquer conselho ou empurrão para a direção correta será apreciado.