1. ホーム
  2. php

[解決済み] eloquent/fluentを使用して、1つのクエリから複数行を挿入する方法

2022-04-15 01:40:31

質問

次のようなクエリがあります。

  $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 は任意の数の行を期待できるため、未知の数の行を反復処理する方法がわかりません。

どのように解決するのですか?

LaravelでEloquentやクエリビルダを使って一括挿入を行うのはとても簡単です。

次のような方法があります。

$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 という変数があります。