[php] 웅변 / 유창성을 사용하여 단일 쿼리에서 여러 행을 삽입하는 방법
다음과 같은 쿼리가 있습니다.
$query = UserSubject::where('user_id', Auth::id())->select('subject_id')->get();
예상대로 다음과 같은 결과가 나타납니다.
[{"user_id":8,"subject_id":9},{"user_id":8,"subject_id":2}]
위의 결과를 다른 테이블 에 복사하여 내 테이블이 다음과 같이 보이도록하는 방법이 있습니까?
ID|user_id|subject_id
1 |8 |9
2 |8 |2
내가 가진 문제 $query
는 행 수를 예상 할 수 있으므로 알 수없는 행 수를 반복하는 방법을 모릅니다.
답변
Eloquent 또는 쿼리 빌더를 사용하여 Laravel에서 대량 삽입을 수행하는 것이 실제로 쉽습니다.
다음 방법을 사용할 수 있습니다.
$data = [
['user_id'=>'Coder 1', 'subject_id'=> 4096],
['user_id'=>'Coder 2', 'subject_id'=> 2048],
//...
];
Model::insert($data); // Eloquent approach
DB::table('table')->insert($data); // Query Builder approach
귀하의 경우 이미 $query
변수 내에 데이터가 있습니다 .
답변
Eloquent 사용
$data = array(
array('user_id'=>'Coder 1', 'subject_id'=> 4096),
array('user_id'=>'Coder 2', 'subject_id'=> 2048),
//...
);
Model::insert($data);