wsd15321
- wsd15321 回答了问题 limit连贯查询怎么分页麻烦了
offset是指从第几行开始,比如一页10行,那第一页offset是0,第二页offset就是10
- wsd15321 2018-04-06 已签到连续签到1天,获得了5个金钱
- wsd15321 回复了 johnny1991 的回答
model 实现了ArrayAccess接口,这个方法是ArrayAccess接口提供的链接参考
// 可以使你像使用数组一样给对象的属性赋值 $model = new class extends Model { public $name; public $age; public function offsetSet($offset, $item) { var_dump('this is offset set'); parent::offsetSet($offset, $item); // TODO: Change the autogenerated stub } }; $model->name = 'johnny'; $model['age'] = 25; var_dump($model);
原来是这样啊,我还以为是yii的方法,多谢大大了
- wsd15321 2018-04-04 已签到连续签到2天,获得了10个金钱
- wsd15321 2018-04-03 已签到连续签到1天,获得了5个金钱
采用
$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();
@gahdwaf 恩,我没说清楚,我要新增的数据和其他表有关联的,用的规则肯定要查数据库,这个必须要验证的
- wsd15321 2018-02-01 已签到连续签到4天,获得了20个金钱
采用
$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();
用model规则就相当与每行都会对数据库进行查询,这速度当然会受影响