Yii显示和验证表中没有的字段

时间:2012-01-12 12:56:53

标签: php templates yii

我是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框架的新手,可以在这里使用一些帮助。感谢

2 个答案:

答案 0 :(得分:2)

在模型中将它们声明为模型的属性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..'
    );
}

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

答案 1 :(得分:0)

将以下行添加到模型中

public $old_pwd;  
public $pwd_repeat;

我们指示Yii将此字段用作虚拟字段,而不是在数据库字段中搜索