【问题标题】:CActiveForm and virtual attributesCActiveForm 和虚拟属性
【发布时间】:2012-02-29 19:12:41
【问题描述】:

正如here 所说,Yii 提供了虚拟属性。我在模型中添加了以下内容:

public function getTest()
{
...
}

public function setTest($value)
{
...
}

在我的 CActiveForm 中,我使用以下文本字段:

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

打开表单时,会调用 get-Method(使用调试器验证)。保存记录不会调用设置器(其他所有属性都正常保存并正常工作)。

有人帮我解决这个问题吗?

【问题讨论】:

    标签: php yii


    【解决方案1】:

    我认为您缺少为变量“test”定义规则。

    public function rules()
    {
         $rules[] = array('test','safe');
         return $rules;
    }
    

    【讨论】:

    • 我之前也试过这个,结果是“Eigenschaft CSafeValidator.0 ist nicht definiert.”,英文:“Property CSafeValidator.0 is undefined.”。由于我对 Yii 还很陌生,所以不知道在哪里进行更改。
    • 发现我的问题,rules() 确实没有正确定义。我省略了“安全”选项,这导致了我的问题。所以你的答案是 100% 正确的。
    猜你喜欢
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多