模型Yii2中

时间:2018-05-29 13:48:03

标签: activerecord view model yii2

我创建了一个ActiveRecord模型,用户输入他们的电子邮件并添加到Yii2中的数据库。当它们被添加到数据库中时,我想根据它们从哪个视图输入信息来更新我的一个属性。我知道Yii2允许你在模型中设置默认值,比如

public function rules()
{
    return [
        [['view'], 'default', 'value' => a]
    ]
}

但我不确定如何根据每个视图设置不同的默认值。在我看来,我有 form->字段($ model,'email')并提交用户输入,我尝试了 setAttribute setAttributes 并创建我自己的set方法,但它们都无法设置属性(我猜他们会工作,如果我说查询我的数据库并在已经存在的模型实例上执行它们。)

我确定我忽略了一些非常简单的事情

1 个答案:

答案 0 :(得分:0)

您不应该根据当前视图定义默认值,因为模型(通常)不能用于视图,而是用于控制台应用程序或代码中与特定视图无关的其他位置。

正如@Patrick所说,你可以在每个视图中添加隐藏字段,如:

<?= $form->field($model, 'view')->hiddenInput(['value'=> $this->id /* view id or whatever */])->label(false);