У меня есть следующий запрос:
$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 = 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);