Yii显示和验证表中不存在的字段


Yii display and validation of fields not present in table

我是Yii的新手。我创建了一个用户可以更改密码的页面。

所以在我的changePassword视图中,我有:

<div class="row">
    <?php echo $form->labelEx($model,'oldpwd'); ?>
    <?php echo $form->textField($model,'oldpwd'); ?>
    <?php echo $form->error($model,'oldpwd'); ?>
</div>
<div class="row">
    <?php echo $form->labelEx($model,'pwd'); ?>
    <?php echo $form->textField($model,'pwd'); ?>
    <?php echo $form->error($model,'pwd'); ?>
</div>
<div class="row">
    <?php echo $form->labelEx($model,'pwd_repeat'); ?>
    <?php echo $form->passwordField($model,'pwd_repeat'); ?>
    <?php echo $form->error($model,'pwd_repeat'); ?>
</div>

现在很明显,我得到了一个错误,因为只有字段"pwd"在表中,从而在模型中。我是MVC框架的新手,可以在这里使用一些帮助。感谢

在模型中将它们声明为model First的属性。。

public $old_pwd;
public $pwd;
public $pwd_repeat;

正如您所询问的这些属性的模型标签。。在模型中的attributeLabels函数中定义它们。。

public function attributeLabels()
{
    return array(
        'old_pwd'=>'Old Passw....',
                     '.....same way for all those who are not already there..'
    );
}

如果需要,在规则中声明它们是安全的。。。

在您的模型中添加以下行

public $old_pwd;  
public $pwd_repeat;

我们指示Yii使用该字段作为虚拟字段,而不是在数据库字段

中搜索