IT story

유창함 / 유창함을 사용하여 단일 쿼리에서 여러 행을 삽입하는 방법

hot-time 2020. 8. 7. 07:54
반응형

유창함 / 유창함을 사용하여 단일 쿼리에서 여러 행을 삽입하는 방법


다음과 같은 쿼리가 있습니다.

  $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 = array(
    array('user_id'=>'Coder 1', 'subject_id'=> 4096),
    array('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);

참고 URL : https://stackoverflow.com/questions/29723865/how-to-insert-multiple-rows-from-a-single-query-using-eloquent-fluent

반응형