[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);


답변