2013-06-25 33 views
0

我想通過會話保持Yii中的兩個動作之間的數據。我現在在一個動作「節點不再存在」Yii

Yii::app()->session['resultsData'] = $data; 

寫入數據,並設法得到它的下一個動作

$this->resultsData = Yii::app()->session['resultsData']; 

,但是當我想的print_r鑑於此數據...

<? print_r($this->resultsData); ?> 

我得到

PHP warning 

print_r() [<a href='function.print-r'>function.print-r</a>]: Node no longer exists 

實際上,任何mani用這個數據數組,如serialize或json_encode,返回這個錯誤。可以是因爲數據損壞嗎?謝謝。

+0

yiiiiiiiiii兒子 –

回答

1

的Yii ::應用程序() - >會話[ 'resultsData'];無需使用$這個動作只分配變量如

Yii::app()->session['resultsData'] = $data; 
resultsData =Yii::app()->session['resultsData']; 

和訪問它在另一個行動

echo Yii::app()->session['resultsData'] ; 

如果ü要存取權限的resultData在另一個ü需要該變量傳遞給行動如圖

$this->redirect(array('actionname','resultData'=>$resultData)); 

和y中我們actionname回聲,或print_r的檢查

發送它來查看,如圖

$this->render('ViewName',array('resultData'=>resultData)); 

從以行動利用這一

Yii::app()->createAbsoluteUrl('ControllerName/actionName',array('data'->$data)); 
+0

我需要將數據發送到視圖。我試過這個 print_r(Yii :: app() - > session ['resultsData']); – cheeseq

+0

查看更新post.And檢查wheather Yii ::應用程序() - >會議['resultsData']獲取賦值$ data – Ninad

+0

的值,但如果我通過JavaScript重定向,你能建議什麼? – cheeseq

0

也許這可以幫助你:

$model = new CompanyForm('step1'); 
     if (is_array(Yii::app()->session['step1'])) 
      $model->attributes = Yii::app()->session['step1']; 

if (!is_array(Yii::app()->session['step1'])) 
      $this->redirect(array('createStep1')); 

    $this->render('create', array(
     'model' => $model, 
     'step' => 'step1' 
    )); 

也許你正在將數據保存在錯誤的地方;可能你有一個帖子或獲得的動作;

而且,print_r的的$數據看笏你在會話保存數據之前獲得