Skip to content
This repository has been archived by the owner on Jun 16, 2023. It is now read-only.

zepfietje/laravel-seeable

Repository files navigation

Packagist Version Packagist Downloads

Laravel Seeable

This package makes it easy to keep track of the date and time a user was last seen.

Installation

  1. Install this package:
    composer require zepfietje/laravel-seeable
  2. Optionally publish the configuration file:
    php artisan vendor:publish --tag="seeable-config"
  3. Add a seen_at column to your users table:
    return new class extends Migration
    {
        public function up(): void
        {
            Schema::table('users', function (Blueprint $table) {
                $table->timestamp('seen_at')->nullable();
            });
        }
    
        // ...
    };
  4. Add the Seeable concern to your user model:
    namespace App\Models;
    
    // ...
    use ZepFietje\Seeable\Concerns\Seeable;
    
    class User extends Authenticatable
    {
        // ...
        use Seeable;
    }
  5. Register the SeeUser middleware in your app/Http/Kernel.php file:
    protected $middlewareGroups = [
        'web' => [
            // ...
            \ZepFietje\Seeable\Http\Middleware\SeeUser::class,
        ],
    ];

Usage

Query scopes

User::seenAfter('2022-06-30')->get();
$dailyActiveUsers = User::seenPastDay()->count();
$weeklyActiveUsers = User::seenPastWeek()->count();
$monthlyActiveUsers = User::seenPastMonth()->count();