
Count Models With the Laravel Visits Package
Laravel Visits is a package by Bader Almutairi for attaching counters to any model to track visits with tags. The main features this package provides, include the following:
- A model item can have many types of recorded visits (using tags).
- It’s not limited to one kind of Model (like some packages that allow only User model).
- Record per visitors and not by visits using IP detecting, so even with refresh visit won’t duplicate (can be changed from config).
- Get Top/Lowest visits per a model.
- Get most visited countries …
- Get visits per a period like a month of a year of an item or model.
Counting Models
The basic usage for counting models includes the following methods for incrementing and decrementing among others:
visits($post)->increment();
// More than one
visits($post)->increment(10);
visits($post)->decrement();
// More than one
visits($post)->decrement(10);
// Only increment once every 30 seconds based on user's IP
visits($post)->seconds(30)->increment()
Getting Data
Once you’ve collected counter data for your model, you can retrieve and filter results with the following:
visits($post)->count();
visits($post)->period('day')->count();
// With the model class
visits('App\Post')->count();
You can also collect other interesting data about country and referrer if you want a quick analytics tool for tracking models:
visits($post)->countries();
// Referrers of visitors
visits($post)->refs();
The geo data for the country functionality is provided through the Torann/laravel-geoip package.
Integration with Eloquent
You can integrate this package directly into your Eloquent model by defining a method like visits
:
public function visits()
{
return visits($this);
}
And then performing calls on the visits object:
$post = Post::find(1);
$post->visits()->increment();
$post->visits()->count();
Learn More
To view the full readme, including installation instructions and source code, check this package out on the GitHub repo awssat/laravel-visits. Great work Bader!
Filed in: Laravel PackagesNewsletter

Join 31,000+ others and never miss out on new tips, tutorials, and more.
Laravel Jobs

- Software Developer
-
Remote (US & Canada)
Alley - 😎 Laravel Developer
-
Remote
Jogg, Inc - Junior, Mid, and Senior Software Engineers. Laravel / Vue. Saint Petersburg, FL
-
Saint Petersburg, FL and Remote
ShineOn - Senior PHP Developer (Laravel)
-
Remote
The Interaction Design Foundation - Fullstack Laravel Engineer (Munich/Remote) 💻
-
Munich, Germany or Remote
AirLST GmbH