Maison > Article > base de données > Comment insérer des données d'une table à une autre à l'aide de Insert...Select dans Laravel ?
Insertion de données à l'aide d'Insérer... Sélectionner dans Laravel
Afin d'insérer des données d'une table à une autre à l'aide de l'Insérer... Instruction Select dans Laravel, vous pouvez utiliser l'approche suivante :
Bien que l'ORM ou les requêtes éloquentes de Laravel ne prennent pas en charge les instructions Insert...Select directement, vous pouvez exploiter les connexions à la base de données sous-jacentes pour obtenir le résultat souhaité.
<code class="php">/* Obtain the original select query and its bindings */ $select = User::where(...) ->where(...) ->whereIn(...) ->select(['email', 'moneyOwing']); $bindings = $select->getBindings(); /* Construct the insert query */ $insertQuery = 'INSERT INTO user_debt_collection (email, dinero) ' . $select->toSql(); /* Execute the insert query using the bindings */ \DB::insert($insertQuery, $bindings);</code>
Mise à jour de Laravel 5.7 :
Dans Laravel 5.7.17 et versions ultérieures, vous pouvez également utiliser la méthode insertUsing() pour obtenir un résultat similaire :
<code class="php">DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!