Laravel Packages

Count Models With the Laravel Visits Package

Published
Count Models With the Laravel Visits Package image

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!

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Laravel 14 Adds a defaults() Method to Eloquent Models image

Laravel 14 Adds a defaults() Method to Eloquent Models

Read article
Laravel AI SDK and Laravel MCP Security Fixes: Update Now image

Laravel AI SDK and Laravel MCP Security Fixes: Update Now

Read article
Mailbox for Laravel: Preview and Test Rendered Email image

Mailbox for Laravel: Preview and Test Rendered Email

Read article
Count Worker Crashes as Job Exceptions in Laravel 13.34 image

Count Worker Crashes as Job Exceptions in Laravel 13.34

Read article
Elastic Bridge: Eloquent-Style Queries for Elasticsearch and OpenSearch image

Elastic Bridge: Eloquent-Style Queries for Elasticsearch and OpenSearch

Read article
Laravel Release Cycle: Versions, Support Policy, and Dates image

Laravel Release Cycle: Versions, Support Policy, and Dates

Read article