如何在Yii2中确保所有模型属性安全?

时间:2019-03-15 09:24:11

标签: php yii yii2

在这里,我要将所有数据库字段都设为safe进行大量分配吗?

[$this->attributes, 'safe', 'on' => self::SCENARIO_MIGRATION],

这是正确的吗?如果不是,最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

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

$model->setAttributes($data, false);
$model->save(false);

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

[$this->attributes(), 'safe', 'on' => self::SCENARIO_MIGRATION],