使用Yii进行批量添加的时候,执行后会发现表中只插入了foreach循环的最后一条数据,而其它数据没有添加成功,那是因为内存地址中循环时新一条数据会覆盖前一条数据,解决办法如下:
第一种方法:
<?php $model = new Model(); foreach($data as $attributes) { $_model = clone $model; //重新克隆一个新的model $_model->setAttributes($attributes); $_model->save(); } ?>
第二种方法:
<?php $model = new Model(); foreach($data as $attributes) { $model->isNewRecord = true; $model->setAttributes($attributes); $model->save() && $model->id=0; } ?>