Est-il possible d'incrémenter plus d'une colonne dans laravel?
Disons:
DB::table('my_table')
->where('rowID', 1)
->increment('column1', 2)
->increment('column2', 10)
->increment('column3', 13)
->increment('column4', 5);
Mais cela se traduit par:
Call to a member function increment() on integer
Je veux juste trouver un moyen efficace de le faire en utilisant les fonctions données par laravel. Merci. Toutes les suggestions feront.
Il n'y a pas de fonction existante pour faire cela. Vous devez utiliser update()
:
DB::table('my_table')
->where('rowID', 1)
->update([
'column1' => DB::raw('column1 + 2'),
'column2' => DB::raw('column2 + 10'),
'column3' => DB::raw('column3 + 13'),
'column4' => DB::raw('column4 + 5'),
]);
Pour référence future en 5.2, il a été possible de procéder comme suit:
Vous pouvez également spécifier des colonnes supplémentaires à mettre à jour pendant l'opération:
DB :: table ('utilisateurs') -> incrémente ('votes', 1, ['name' => 'John']); </ i>
Tout d’abord, le résultat de increment
est un entier conforme à la documentation: http://laravel.com/api/4.2/Illuminate/Database/Query/Builder.html
Il faudrait donc faire un appel pour chaque incrément:
DB::table('my_table')
->where('rowID', 1)
->increment('column1', 2);
DB::table('my_table')
->where('rowID', 1)
->increment('column2', 10);
DB::table('my_table')
->where('rowID', 1)
->increment('column3', 13);
DB::table('my_table')
->where('rowID', 1)
->increment('column4', 5);
Je ne parviens pas à trouver une solution plus rapide, à moins que vous ne souhaitiez la résoudre avec une commande de requête de mise à jour brute.
De plus, votre exemple de code générera probablement une erreur si vous avez fermé l'instruction avec ;
et continuez avec un nouvel appel ->increment
sur la ligne suivante.
Incréments et diminutions dans Laravel Modèle éloquent
L'option Ajouter au panier est l'une des fonctions les plus importantes des sites Web de commerce électronique. La partie délicate consiste à obtenir le nombre d’articles du panier à afficher sur l’icône du panier. L’approche prédominante pour y parvenir consiste à utiliser la fonction d’incrémentation et de décrémentation sur Laravel. Cela facilite également l'ajout ou le retrait d'un produit de votre panier. La façon de mettre en œuvre cette fonction est,
$user = User::find(‘517c43667db388101e00000f’);
$user->cart_count++;
// $user->cart_count--; // for decrement the count
$user->save()
Un moyen alternatif et plus simple est,
$user = User::find($article_id);
$user->increment('cart_count');
Aussi ceux-ci fonctionneront:
$user->increment('cart_count');// increase one count
$user->decrement('cart_count'); // decrease one count
$user->increment('cart_count',10); // increase 10 count
$user->decrement('cart_count',10); // decrease 10 count
Maintenant dans laravel 5.7 laravel query builder, incrémenter et décrémenter , cela peut être fait facilement. Model::where('id', "rowID")->increment('columne1');
ou vous pouvez utiliser DB DB::table("my_table")->where('id', "rowID")->increment('column1');