2013-06-25 34 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的的$数据看笏你在会话保存数据之前获得