如何复制记录并使用不同的值保存1个或多个字段?
例如: 得到----> first_name,last_name,civil_status,work
我想复制第一个名字和姓氏,然后将其插入新的公民身份并开始工作。
答案 0 :(得分:33)
你可以像这样使用replicate
模型方法:
// Retrieve the first task
$task = Task::first();
$newTask = $task->replicate();
$newTask->project_id = 16; // the new project_id
$newTask->save();
答案 1 :(得分:10)
您可以使用replicate
方法。这将创建一个具有相同值的新对象,但主键和时间戳除外。之后,您可以保存您的模型:
$task = Task::find(1);
$new = $task->replicate();
如果您愿意,可以更改房产
$new->project = $otherProject;
然后
$new->save();
如果您想要新ID,请轻松:
$newID = $new->id;
答案 2 :(得分:7)
您可以使用replicate()
然后更新该行:
Model::find(1)->replicate()->save();
$model = Model::find(1);
$model->project_id = $new_project_id;
$model->save();
答案 3 :(得分:2)
您也可以这样做。
$selected = Model::find(1);
$copy = $selected->replicate()->fill(
[
'project_id' => $new_project_id,
]
);
$copy->save();