Laravel eloquent model increment with or without updating timestamps

You may need to increment a field in a record of a table (a single attribute of a Laravel Model) and do not want update the updated_at timestamps.

Suppose the field is popularity when you do this:

Besides incrementing popularity, this will update the timestamps of that record too!

While you don’t want it.


As an example see how laravel does the same when update the remember_me token at each logout without touching the timestamps.

In class EloquentUserProvider in Illuminate\Auth directory (this link) in the updateRememberToken() method Laravel first assigns the value (true or false) of timestamps to a temporary variable and after saving the remember_token in the $user model retrieves its original value.


Using a simple query builder which does not update timestamps on its own:

timestamps (updated_at) is not touched:

timestamps (updated_at) is touched:


By default, Eloquent expects created_at and updated_at columns to exist on your tables. If you do not wish to have these columns automatically managed by Eloquent, set the $timestamps property on your model to false:

In this case, whenever you want the timestamps to be updated, you need to manually assign them value like

Thank you for reading! If you enjoyed this article:

Clap it ! Share it! Follow Me in Medium!

Also I’d like to hear your opinion on this article. If you have any doubt, question or suggestion please leave a comment below.

Have a very wonderful day!

Previous Stories You will Love:

Posting daily about Python, Nuclear Physicist PhD

Posting daily about Python, Nuclear Physicist PhD