Yii在会话中存储表单数据似乎不起作用


Yii storing form data in a session does not seem to be working

我希望能够在会话中存储表单数据,以便在其他页面上使用,但似乎不起作用:

//the action controller for the form
$clientInfo = new ClientInfo;
if(isset($_POST['ClientInfo'])) {
    // collects user input data
    $clientInfo->attributes=$_POST['ClientInfo'];
    // validates user input and redirect to previous page if validated
    if($clientInfo->validate()) {
        //store client info in a session varible
        Yii::app()->session['fname'] = $clientInfo->fname;
        Yii::app()->session['lname'] = $clientInfo->lname;
        Yii::app()->session['email'] = $clientInfo->email;
        Yii::app()->session['cellPhone'] = $clientInfo->cellPhone;
        $this->redirect('service'); 
    } 
}

然后,在某种程度上,我这样做了,但一无所获:

<div class="panel panel-success">
    <div class="panel-heading">
        <h3 class="panel-title">Overview</h3>
    </div>
    <div class="panel-body">
    <?php 
        echo Yii::app()->session['fname'];
        echo Yii::app()->session['lname'];
    ?>
    </div>
</div>
$loggeduser = array();
$loggeduser['fname']=$clientInfo->fname;
$loggeduser['lname']=$clientInfo->lname;
$loggeduser['email']=$clientInfo->email;
$loggeduser['cellPhone']=$clientInfo->cellPhone;
Yii::app()->session['loggeduser'] = $loggeduser;

 <?php 
            echo Yii::app()->session['loggeduser']['fname'];
            echo Yii::app()->session['loggeduser']['lname'];
    ?>

我想明白了。我必须使用这个

Yii::app()->session['fname'] = $_POST['ClientInfo']['fname'];

而不是这个

Yii::app()->session['fname'] = $clientInfo->fname;

或者这样做:

Yii::app()->session['client_info'] = $clientInfo->attributes;

您将把整个模型属性存储为一个数组

您将使用以下值:

Yii::app()->session['client_info']['fname']

尝试用这种方式存储数据。

$session=new CHttpSession;
$session->open();
$session['fname']=$clientInfo->fname;
$session['lname']=$clientInfo->lname;
$session['email']=$clientInfo->email;
$session['cellPhone']=$clientInfo->cellPhone;

检索值。

$session = new CHttpSession;
$session->open();
$fname = $session['fname'];
$lname = $session['lname'];
$email = $session['email'];
$cellPhone = $session['cellPhone'];

感谢