我正在做一个函数来更改用户密码。在用户模型的内部我创建了三个变量,如下所示。规则中两个变量之间的规则在Yii中不起作用
public $oldPassword;
public $newPassword;
public $repatePassword;
现在我需要比较newPassword和repare密码在一起,我在模型中添加followinf规则。
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('username, password', 'required'),
array('username', 'length', 'max'=>20),
array('password', 'length', 'max'=>255),
array('oldPassword', 'findPassword', 'on' => 'changePwd'),
//array('repatePassword','compare','compareAttribute'=>'newPassword', 'on'=>'changePwd'),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('id, username, password', 'safe', 'on'=>'search'),
);
}
我有以下形式。
<div class="row">
<?php echo $form->labelEx($model,'Old Password'); ?>
<?php echo $form->passwordField($model,'oldPassword',array('size'=>20,'maxlength'=>20)); ?>
<?php echo $form->error($model,'oldPassword'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'New Password'); ?>
<?php echo $form->passwordField($model,'newPassword',array('maxlength'=>255)); ?>
<?php echo $form->error($model,'newPassword'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'Repate Password'); ?>
<?php echo $form->passwordField($model,'repatePassword',array('maxlength'=>255)); ?>
<?php echo $form->error($model,'repatePassword'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Update'); ?>
</div>
现在,当我在两个字段中正好放置相同的值时,它仍然给我说值不一样。为什么是这样?
显示完整的'rules()'方法。 'newPassword'必须有自己的规则才能被声明为安全的并被分配给变量。 – 2014-09-22 19:09:47
编辑questipn – Steve 2014-09-22 19:18:54