Laracode
Laracode

Методы increment и decrement

Иногда нам нужно обновить значение, увеличив или уменьшив его. Обычно для этого пишется отдельный запрос, но в Laravel есть элегантные методы, позволяющие сделать это в одну строчку!

<?php

// Увеличить votes на 1
DB::table('users')->increment('votes');

// Увеличить votes на 5
DB::table('users')->increment('votes', 5);

// Уменьшить votes на 1
DB::table('users')->decrement('votes');

// Уменьшить votes на 5
DB::table('users')->decrement('votes', 5);

// Увеличить votes на 1 и задать name = 'John'
DB::table('users')->increment('votes', 1, ['name' => 'John']);

// Можно увеличивать несколько столбцов сразу
DB::table('users')->incrementEach([
    'votes' => 5,    // Will increment votes by 5    
    'balance' => 100, // Will increment balance by 100
]);

// Эти методы также работают с Eloquent
User::query()->incrementEach([
    'votes' => 5,    // Will increment votes by 5    
    'balance' => 100  // Will increment balance by 100
]);