Метод decrement
Метод decrement применяется к запросу Eloquent
или Query Builder и уменьшает значение указанного
числового поля на заданную величину. Первым параметром
передаётся имя колонки, вторым - количество единиц
уменьшения (по умолчанию 1). Метод возвращает
количество затронутых строк.
Синтаксис
<?php
Model::decrement($column, $amount);
?>
Пример
Давайте уменьшим количество просмотров у статьи
с id равным 1 на 1:
<?php
use AppModelsArticle;
$affected = Article::where('id', 1)->decrement('views');
echo "Affected rows: " . $affected;
?>
Результат выполнения кода:
"Affected rows: 1"
Пример
Давайте уменьшим количество просмотров у всех статей,
у которых поле 'status' равно 'published',
на 5 единиц:
<?php
use AppModelsArticle;
$affected = Article::where('status', 'published')
->decrement('views', 5);
echo "Affected rows: " . $affected;
?>
Результат выполнения кода:
"Affected rows: 3"
Пример
Давайте уменьшим количество просмотров у статьи
с id равным 1 и одновременно обновим
поле 'updated_at':
<?php
use AppModelsArticle;
$affected = Article::where('id', 1)
->decrement('views', 3, [
'updated_at' => now()
]);
echo "Affected rows: " . $affected;
?>
Результат выполнения кода:
"Affected rows: 1"
Пример
Давайте уменьшим количество просмотров у статьи с помощью Query Builder:
<?php
use IlluminateSupportFacadesDB;
$affected = DB::table('articles')
->where('id', 1)
->decrement('views');
echo "Affected rows: " . $affected;
?>
Результат выполнения кода:
"Affected rows: 1"