是修改密码功能的。
User中rules里:
array('password_repeat,newpassword,oldpassword','required', 'on'=>'passwordPage'),
array('password_repeat','compare','compareAttribute'=>'newpassword', 'on'=>'passwordPage','message'=>'密码两次输入不一致'),
passwordPage.php:
<?php
$this->breadcrumbs=array(
//'Users'=>array('index'),
//$model->id=>array('view','id'=>$model->id),
'修改密码',
);
?>
<h1>修改密码</h1>
<?php echo $this->renderPartial(‘password’, array(‘model’=>$model)); ?>
password.php:
<div class="form">
<?php $form=$this->beginWidget(‘CActiveForm’, array(
'id'=>'user-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'oldpassword'); ?>
<?php echo $form->passwordField($model,'oldpassword',array('size'=>32,'maxlength'=>32)); ?>
<?php echo $form->error($model,'oldpassword'); ?>
<?php echo Yii::app()->user->getFlash('oldpasswordnone'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'newpassword'); ?>
<?php echo $form->passwordField($model,'newpassword',array('size'=>32,'maxlength'=>32)); ?>
<?php echo $form->error($model,'newpassword'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password_repeat'); ?>
<?php echo $form->passwordField($model,'password_repeat',array('size'=>32,'maxlength'=>32)); ?>
<?php echo $form->error($model,'password_repeat'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton( 'save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
UserController中:
public function actionPasswordPage()
{
$model=$this->loadModel(Yii::app()->user->id);
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
$model->validate();
if(Yii::app()->user->password==md5($model->oldpassword)){///----
if($model->password!=""){
$model->password=md5($model->password_repeat);
}
if($model->save()){
$this->redirect(array('passwordPage'));
}
}
}
$this->render('passwordPage',array(
'model'=>$model,
));
}
还有
public $password_repeat;
public $newpassword;
public $oldpassword; 都在UserController中另外定义了
发现在///----的地方 $model->password_repeat 是空值,是哪里出问题了??