覆盖后模型->保存()活动记录


Override after model->save() Active Record

我有这个循环保存记录与活动记录:

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

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

谢谢。

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

您可以使用以下任何一种方法将所有url值保存在新行

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

或者你可以使用insert方法,注意在insert方法中不执行验证,如果你想要执行验证,你将单独调用validate()

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

在每个循环和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 
}