在开发中遇到过这样问题,foreach循环插入数据时,表中只插入了循环的最后一条数据,而其它数据没有真实添加,追踪发现,内存地址中循环时新一条数据会覆盖前一条数据,解决办法是新建一个对象
第一种方法
$model = new User(); foreach($data as $attributes) { $_model = clone $model; //克隆对象 $_model->setAttributes($attributes); $_model->save(); }
第二种方法
$model = new User(); foreach($data as $attributes) { $model->isNewRecord = true; $model->setAttributes($attributes); $model->save() && $model->id=0; }
时间: 2024-10-05 22:12:45