Insertion efficace de données à l'aide de l'insertion... Sélectionner dans Laravel
Conversion de requête pour Laravel
Pour convertir la requête SQL fournie en une expression Laravel, il est crucial de comprendre que Laravel 5.6 et les versions antérieures ne prennent pas en charge directement les opérations d'insertion... Sélection. Cela signifie qu'une conversion directe n'est pas possible.
Approche alternative dans Laravel
Cependant, il existe une solution de contournement qui vous permet d'obtenir le résultat souhaité. Au lieu de tenter une seule requête, vous pouvez la diviser en deux étapes :
Exemple de code :
<code class="php">// Step 1: Generate the Select query $select = User::where(...) ->where(...) ->whereIn(...) ->select(array('email','moneyOwing')); // Step 2: Get binding parameters $bindings = $select->getBindings(); // Step 3: Construct raw SQL insert query $insertQuery = 'INSERT into user_debt_collection (email,dinero) ' . $select->toSql(); // Step 4: Execute the insert \DB::insert($insertQuery, $bindings);</code>
Laravel 5.7 Update
Laravel 5.7 a introduit la méthode ->insertUsing(), fournissant prise en charge directe de Insérer... Sélectionner. L'exemple précédent serait simplifié en :
<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!