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

How can I make all model attributes as safe in Yii2?

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

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

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

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

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

但是如果你真的需要这样的 "empty" 验证规则,你应该使用 attributes() 方法来获取属性名称列表:

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