Метод increment
Метод increment применяется к запросу Eloquent
или Query Builder и выполняет атомарное увеличение
значения указанного поля на заданное количество.
Первым параметром передаётся имя колонки, вторым -
количество единиц для увеличения (по умолчанию 1).
Также можно передать массив дополнительных полей
для обновления в третьем параметре.
Синтаксис
<?php
Model::increment($column, $amount, $extra);
Model::where(...)->increment($column, $amount, $extra);
?>
Пример 1
Давайте увеличим количество просмотров статьи
с id равным 1 на 1:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function incrementViews()
{
$res = Article::where('id', 1)->increment('views');
echo $res;
}
}
?>
Результат выполнения кода:
true
Пример 2
Давайте увеличим количество просмотров статьи
с id равным 2 на 5 единиц:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function incrementViews()
{
$res = Article::where('id', 2)->increment('views', 5);
echo $res;
}
}
?>
Результат выполнения кода:
true
Пример 3
Давайте увеличим количество просмотров статьи
с id равным 3 на 3 и одновременно
обновим поле updated_at:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use CarbonCarbon;
class ArticleController extends Controller
{
public function incrementViews()
{
$res = Article::where('id', 3)->increment('views', 3, [
'updated_at' => Carbon::now()
]);
echo $res;
}
}
?>
Результат выполнения кода:
true
Пример 4
Давайте увеличим количество просмотров у всех статей
с полем status равным 'published' на 1:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function incrementViews()
{
$res = Article::where('status', 'published')->increment('views');
echo $res;
}
}
?>
Результат выполнения кода:
true