使用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;
}
?>
时间: 2024-10-29 19:10:52