Eloquent met à jour plusieurs enregistrements par lots
Au lieu d'attribuer par lots des valeurs à plusieurs champs d'un enregistrement,
mais 根据不同条件对不同记录做不同修改
.
Semblable à l'insertion en vrac :
DB::table('users')->insert(array(
array('email' => 'taylor@example.com', 'votes' => 0),
array('email' => 'dayle@example.com', 'votes' => 0),
));
Existe-t-il une déclaration similaire
DB::table('users')->update( array(
array('id'=>1, 'email' => 'taylor1@example.com', 'votes' => 1),
array('id'=>2, 'email' => 'dayle2@example.com', 'votes' => 2),
) , 'id' );
La fonction implémentée est :
Modifier l'enregistrement correspondant en fonction de l'id :
id=1 'email' est remplacé par 'taylor1@example.com', 'votes' est remplacé par 1,
id=2 'email' est remplacé par 'dayle2@example.com', 'votes' est remplacé par 2
. . .
CI a une méthode update_batch similaire. Je souhaite la convertir en Laravel. Veuillez me donner plus de conseils.
Il n'existe actuellement aucun bon moyen d'encapsuler le framework, mais je viens de le rechercher sur Google et j'ai vu une réponse sur stackoverflow qui correspond très bien à votre question. Ce qui suit est copié de stackoverflow, le lien d'origine est http://stackoverflow.com/questions. / 26133977/laravel-bulk-update.
J'ai créé ma fonction personnalisée pour les mises à jour multiples comme update_batch dans CodeIgniter.
Placez simplement cette fonction dans l'un de vos modèles ou vous pouvez créer une classe d'assistance et placer cette fonction dans cette classe :
Il produira :