gpt4 book ai didi

Yii2:非场景字段不保存

转载 作者:行者123 更新时间:2023-12-02 08:18:11 25 4
gpt4 key购买 nike

我正在使用不同的场景进行验证。

场景中不需要字段电子邮件,但如果我传递电子邮件,它不会保存在数据库中。

模型中的规则:

 [['firstname','email'], 'string', 'max' => 256],

场景功能

 public function scenarios() {
$scenarios = parent::scenarios();
$scenarios['insert2'] = ['firstname', 'status'];
return $scenarios;
}

在 Controller 中:

$model = new User();
$model->scenario = "insert2";
$model->load($data);
print_r($model);

Print_r 返回空邮件

最佳答案

来自 Yii 2 load() docs :

Note, that the data being populated is subject to the safety check by setAttributes().

现在,setAttributes()签名:

public void setAttributes ( $values, $safeOnly = true )

其中 $safeOnly 设置为 true 意味着只能对安全属性进行赋值。安全属性是与当前 $scenario 中的验证规则关联的属性。

因此 email 必须包含在场景中。

关于Yii2:非场景字段不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com