J'ai la requête suivante:
$query = UserSubject::where('user_id', Auth::id())->select('subject_id')->get();
et comme prévu j'obtiens le résultat suivant:
[{"user_id":8,"subject_id":9},{"user_id":8,"subject_id":2}]
Est-il possible de copier le résultat ci-dessus dans ne autre table afin que ma table ressemble à ceci?
ID|user_id|subject_id
1 |8 |9
2 |8 |2
Le problème que j’ai, c’est que le $query
peut s’attendre à n’importe quel nombre de lignes et ne sait donc pas exactement comment parcourir un nombre inconnu de lignes.
Il est très facile de faire une insertion en bloc dans Laravel en utilisant Eloquent ou le constructeur de requêtes.
Vous pouvez utiliser l'approche suivante.
$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
Dans votre cas, vous avez déjà les données dans la variable $query
.
en utilisant Eloquent
$data = array(
array('user_id'=>'Coder 1', 'subject_id'=> 4096),
array('user_id'=>'Coder 2', 'subject_id'=> 2048),
//...
);
Model::insert($data);