Yii有没有提供批量验证的方法 [ 2.0 版本 ]
我这里有大量数据插入的需求,我用了 \Yii::$app->db->createCommand()->batchInsert
这个方法来新增数据,
但数据的正确性又要求比较严格,我只能用 $model->validate()
模型规则来验证数据,但会慢很多,不知道yii2本
身是否有提供批量验证的方法呢,还是只能自己写。
共 2 个回答
-
采用
$model
的rules
来验证不会慢,除非你有数据库表之类耗费性能的判断,比如unique
规则示例:
<?php $inserts=[ [ 'test',177, ], [ 'test2',117, ], ... ]; $model = new TestModel(); foreach($inserts as $insert){ $model->name = $insert[0]; $model->height = $insert[1]; if(!$model->validate()){ throw new \Exception('invalid data'); } } $columns = ['name','height']; \Yii::$app->db ->createCommand() ->batchInsert('table',$columns,$inserts) ->execute();
共 4 条回复
wsd15321
注册时间:2017-11-08
最后登录:2019-06-13
在线时长:3小时12分
最后登录:2019-06-13
在线时长:3小时12分
- 粉丝0
- 金钱255
- 威望20
- 积分485