If you think Laravel Eloquent mechanism is limited then you are wrong because there are lots of helper function that makes Laravel awesome.
A simple example here that everyone think to do in a straightforward way for increment and decrement a column value of database table.
- $article = Article::find($article_id);
- $visitors = $article->visitors + 1;
- $article->update(['visitors' => $visitors]);
In above example we get the row first then add calculation and finally update row.
But Laravel made this task very easy with increment
and decrement
function.
- Article::find($article_id)->increment('visitors');
If you want to customize increment value then passes to control the amount by which column gets incremented.
- Article::find($article_id)->increment('visitors',2);
Same as increment you can use decrement function to decrement a column value in Laravel.
- Article::find($article_id)->decrement('visitors');
As you see in above example we pass second argument to increment column value by custom value, In the same way we will pass second argument to decrement by given value but let you know one thing that second argument is optional.
- Article::find($article_id)->decrement('visitors',2);
You can also use DB
query builder that also provides to increment and decrement a column value.
- DB::table('articles')->increment('visitors');
- DB::table('articles')->decrement('visitors');
You can also achieve this by update query.
- Article::where('id', $article_id)->update(['visitors' => DB::raw('visitors + 1')]);
- Article::where('id', $article_id)->update(['visitors' => DB::raw('visitors - 1')]);