我希望能够在会话中存储表单数据,以便在其他页面上使用,但似乎不起作用:
//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'];
感谢