在model-> save()Active Record之后覆盖

时间:2014-06-10 23:09:21

标签: php mysql activerecord yii

我有这个循环用于保存记录和活动记录:

foreach ($array as $value) {
     $modelImagen->url = $value;
     $modelImagen->inmueble_id_inmueble = '1';
     $modelImagen->save();
}

我有问题只保存一条记录,我认为可能会覆盖数据并保存最后一条。也许我的循环有问题?所有表id都是自动增量的。

感谢。

3 个答案:

答案 0 :(得分:2)

您需要创建其他记录/行,当前循环将覆盖相同的记录/行。

您可以使用以下任一方法将所有网址值保存在新行

foreach ($array as $value) {
     $modelImagen = new ModelImagen() // Your model class
     $modelImagen->url = $value;
     $modelImagen->inmueble_id_inmueble = '1';
     $modelImagen->save();
}

或者你可以使用insert方法,请注意,insert方法不会执行验证,如果要执行验证,则会分别调用validate()

答案 1 :(得分:1)

我认为你需要在循环中使用新的AR。例如$ modelImagen = new Model;

答案 2 :(得分:0)

在每个循环中启动模型,并在保存

unset启动模型

以下是您的代码

foreach ($array as $value) {
     $modelImagen  = new yourmodelName();  // initiate your model
     $modelImagen->url = $value;
     $modelImagen->inmueble_id_inmueble = '1';
     $modelImagen->save();
     unset($modelImagen); // do unset 
}