Laravel increment column and Update Records

09 Sep 2019 . Laravel . 73 views

Today I saw a code where the programmer wants to update a laravel model at the same time, he wants to increment a column's value. Today, I will show you the easiest way how to increment column and update Laravel records.

Just imagine that we have a table called posts, that's structure is like that-

posts

- id
- title
- body
- visits

Now, for some reason, you may want to update the visits column of the post only where id is 1. There are a few ways to do that.

Way 1

$posts = App\Post::where('id', 1)->update([
	'visits' => \DB::raw('visits+1')
]);

Way 2

Besides that, you can use increment() function too.


$posts = App\Post::where('id', 1)->increment('visits', 1);

Isn't that easier?

Now, what if you want to find more than 1 post and try to update the visits column? You can apply either one style from above for updating more than 1 record.

For example-


$posts = App\Post::whereIn('id', [1,2,3,4,5])->increment('visits', 1);

Or


$posts = App\Post::whereIn('id', [1,2,3,4,5])->update([
	'visits' => \DB::raw('visits+1')
]);

Thanks.