Yii2中数据过滤方案

时间:2022-06-03 11:15:27
1. 将数据赋值给model对象再通过model保存数据到数据库时有两种方法。
1) load()再save()。
这种可以通过$model->setScenario('test_scenario');再在model中的scenarios()方法中配置相关字段,再在rules()方法中对每一个字段进行验证。
save()方法执行时只会取scenario中配置的字段构建sql语句并保存到数据库。
2) 给对象中属性赋值再save()。如$user->username = 'test'; $user->save()。
这种方式可以在save()方法中指定只对哪些字段进行更新。如$user->save(true, ['username', 'email']);
如果需要使用scenario中配置的字段可以简写成这样:$user->update(true, $user->scenarios()[$user->getScenario()]);