Laravel使用新值复制记录和复制

Tup*_*pic 19 laravel

如何复制记录并使用不同的值保存1个或多个字段?

例如:get ----> first_name,last_name,civil_status,work

我想复制名字和姓氏然后插入新的公民身份和工作.

Pan*_*lis 37

你可以使用这样replicate的模型方法:

// Retrieve the first task
$task = Task::first();

$newTask = $task->replicate();
$newTask->project_id = 16; // the new project_id
$newTask->save();
Run Code Online (Sandbox Code Playgroud)


Mig*_*ira 11

你可以使用replicate方法.这将创建一个具有相同值的新对象,但主键和时间戳除外.之后,您可以保存您的模型:

$task = Task::find(1);
$new = $task->replicate();
Run Code Online (Sandbox Code Playgroud)

如果你想要你可以改变一个属性

$new->project = $otherProject;
Run Code Online (Sandbox Code Playgroud)

然后

$new->save();
Run Code Online (Sandbox Code Playgroud)

如果您想要新ID,请轻松:

$newID = $new->id;
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 9

您可以使用replicate()然后更新该行:

Model::find(1)->replicate()->save();

$model = Model::find(1);
$model->project_id = $new_project_id;
$model->save();
Run Code Online (Sandbox Code Playgroud)


Abd*_*tin 6

你也可以这样做。

$selected = Model::find(1);
$copy = $selected->replicate()->fill(
    [
        'project_id' => $new_project_id,
    ]
);
$copy->save();
Run Code Online (Sandbox Code Playgroud)