2017-10-06 9 views
0

Laravel 4.2를 사용하고 있습니다. 나는 다음을 사용할 수있는 모델을 복제 할 경우한 번에 여러 모델 복제

:

$newModel = $currentModel->replicate(); 
$newModel->save(); 

그러나 나는 그렇게 같이 루프 안에이 있습니다 분명히 여러 DB 호출이 발생

foreach ($this->models as $currentModel) { 
    $newModel = $currentModel->replicate(); 
    $newModel->save(); 
} 

합니다. 나는 좀 더 효율적인 것을 원한다. 그래서 나는 내 모델을 반복 할 수있다. 그리고 루프의 바깥 쪽에서 하나의 DB 호출을 사용하여 한 번에 모든 것을 작성한다.

Laravel에는 여러 모델을 한 번에 복제 할 수있는 방법이 있습니까?

+0

을 -> 삽입 (array_map (function ($ mo del) { return $ model-> getAttributes();}, $ newModels))'복제 루프에서 새 모델을 수집 한 후! – Maraboc

+0

안녕하세요 @Maraboc 당신의 접근 방식이 좋다고 생각합니다, 나 자신을 시도합니다 – Jimmery

+0

그것은 당신을 위해 일하고 있습니까 ?? – Maraboc

답변

1

당신은이 같은 DB 쿼리 빌더의 insert 한 Statment 사용할 수 있습니다 복사하지 싶습니다 : 나는 당신이`DB :: 표 ('TABLE_NAME')처럼 할 수 있다고 생각

foreach ($this->models as $currentModel) { 
    $newModel = $currentModel->replicate() 
    $newModels[] = $newModel->toArray(); 
} 
DB::table('table_name')->insert($newModels);