【发布时间】:2018-05-29 13:48:03
【问题描述】:
我创建了一个 ActiveRecord 模型,用户可以在其中输入他们的电子邮件并添加到 Yii2 中的数据库中。当它们被添加到数据库时,我想根据他们从哪个视图输入信息来更新我的一个属性。我知道 Yii2 可以让你在模型中设置一个默认值,比如
public function rules()
{
return [
[['view'], 'default', 'value' => a]
]
}
但我不确定如何根据每个视图设置不同的默认值。在我有 form->field($model, 'email') 并提交用户输入的视图中,我尝试了 setAttribute 和 setAttributes 并创建我自己的 set 方法,但它们都无法设置属性(我猜如果我说查询我的数据库并在我的模型的现有实例上执行它们,它们会起作用)。
我确定我忽略了一些非常简单的事情
【问题讨论】:
-
也许你正在寻找这样的东西:
\Yii::$app->controller->action->id?你可以把它放在rules函数中而不是a -
在视图中的表单中添加一个隐藏字段,表示视图。在您的控制器中,评估字段的值并相应地设置模型的属性。
-
Ziki,这可能行得通,但所有视图都由 actionIndex 处理,因此它们具有相同的 id 我猜@Patrick 这对我很有用。我什至没有在控制器中评估它,我只是直接用隐藏字段设置模型的属性。谢谢!
标签: activerecord view model yii2