首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使所有模型属性在Yii2中都是安全的?

如何使所有模型属性在Yii2中都是安全的?
EN

Stack Overflow用户
提问于 2019-03-15 17:24:11
回答 1查看 478关注 0票数 1

在这里,我将所有数据库字段都设置为safe,用于大规模赋值?

代码语言:javascript
复制
[$this->attributes, 'safe', 'on' => self::SCENARIO_MIGRATION],

这是正确的吗?如果不是,实现这一目标的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 17:40:11

使用safe规则对所有属性进行验证不会验证任何内容,因此它没有多大意义。与其创建这样的规则,不如直接在代码中跳过验证:

代码语言:javascript
复制
$model->setAttributes($data, false);
$model->save(false);

但是如果您确实需要这样的“空”验证规则,那么您应该使用attributes()方法来获取属性名称的列表:

代码语言:javascript
复制
[$this->attributes(), 'safe', 'on' => self::SCENARIO_MIGRATION],
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55179295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档