2015-12-13 8 views
6

データベースの行を簡単にコピーしてもう一度挿入することはできますが、1つのフィールドに異なる値を設定するにはどうすればよいですか?例えばLaravel新しい値でレコードをコピーして複製する

: ----> taks_nameを取得するには、私はタスクをコピーし、あなたがreplicate()を使用して、その行を更新することができ、新たなPROJECT_ID

+1

'replicate()' Eloquentメソッドがあなたのものですのためのoking。 –

答えて

1

でそれを挿入したい をPROJECT_ID:

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

$model = Model::find(1); 
$model->project_id = $new_project_id; 
$model->save(); 
16

あなたは、このようなモデルのreplicate方法使用することができます:あなたはを使用することができ

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

$newTask = $task->replicate(); 
$newTask->project_id = 16; // the new project_id 
$newTask->save(); 
7

を方法。これにより、プライマリキーとタイムスタンプ以外の同じ値を持つ新しいオブジェクトが作成されます。その後、あなたのモデルを保存することができます

$task = Task::find(1); 
$new = $task->replicate(); 

あなたは簡単に新しいID、たい場合は、プロパティ

$new->project = $otherProject; 

、その後

$new->save(); 

を変更することができますしたい場合:

$newID = $new->id; 
+0

'id'を' null'に設定する必要はなく、保存時にタイムスタンプが設定されるので 'created_at'タイムスタンプも必要ありません。 –

+0

これは 'created_at'属性の例ですが、作成日はおそらく起源タスクと同じ値になるでしょうか?私はいつ使用する必要があるか覚えていません。主キーと同じです。 –

関連する問題