私は 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;
}
正しい方向へのアドバイスやプッシュをいただければ幸いです。