shankar/laravel-visit-tracker

Track page and model visits (with morph visitor) + analytics.

Installs: 2

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/shankar/laravel-visit-tracker

v1.0 2025-08-30 06:52 UTC

This package is not auto-updated.

Last update: 2025-11-23 06:09:59 UTC


README

Easily track page and model visits with morph visitor model.

Installation

composer require shankar/laravel-visit-tracker

Publish config and migrations:

php artisan vendor:publish --tag=visit-tracker-config
php artisan vendor:publish --tag=visit-tracker-migrations
php artisan migrate

Usage

Tracking visits

Add the TracksVisits trait to your model:

use Shankar\VisitTracker\Traits\TracksVisits;

class Post extends Model
{
    use TracksVisits;
}

Tracking model visits

in controller log the visit

public function show(Post $post)
{
    $post->logVisit();
    return view('post.show', compact('post'));
}

Tracking page visits

in middleware

Route::get('/my-url', function () {
    
})->middleware(TrackPageVisit::class);

Get Analytics Data

use Shankar\VisitTracker\Facades\VisitTracker;
use App\Models\Post;

VisitTracker::mostVisitedPages();
VisitTracker::userMostVisitedPages($user);
VisitTracker::globalMostVisitedModels(Post::class);
VisitTracker::userMostVisitedModels($user, Post::class);
VisitTracker::userModelTypeStats($user);
VisitTracker::userAllVisit($user);

Get Analytics Data with Date Range

use Shankar\VisitTracker\Facades\VisitTracker;
use App\Models\Post;

$fromDate = \Carbon\Carbon::now()->subMonth();
$toDate = \Carbon\Carbon::now();

VisitTracker::mostVisitedPages($fromDate, $toDate);
VisitTracker::userMostVisitedPages($user, $fromDate, $toDate);
VisitTracker::globalMostVisitedModels(Post::class, $fromDate, $toDate);
VisitTracker::userMostVisitedModels($user, Post::class, $fromDate, $toDate);
VisitTracker::userModelTypeStats($user, $fromDate, $toDate);
VisitTracker::userAllVisit($user, $fromDate, $toDate);