Looking to hire Laravel developers? Try LaraJobs

laravel-activity maintained by zairakai

Description
Enhanced activity logging helpers for Spatie Laravel Activity Log with pivot table support
Last update
2026/04/10 01:10 (dev-main)
License
Downloads
31

Comments
comments powered by Disqus

zairakai/laravel-activity

Main Develop Coverage

GitLab Release Packagist Downloads License

PHP Laravel Static Analysis Code Style

Pivot activity logging for Eloquent many-to-many relationships, built on top of Spatie Laravel Activity Log.


Features

  • Fluent API — chainable ->activity()->by()->withMessage()->sync() on any BelongsToMany relation
  • Automatic diffing — logs attached, detached, and unchanged IDs on every sync operation
  • Actor tracking->by($user) records who performed the action
  • Custom messages->withMessage('Assigned roles') for human-readable log entries
  • Zero configuration — no config file needed, just composer require

Requirements

  • spatie/laravel-activitylog must be installed and configured

Install

composer require zairakai/laravel-activity

Usage

use App\Models\User;

$user = User::find(1);

// Log a sync operation on a BelongsToMany relationship
$user->roles()
    ->activity()
    ->by(auth()->user())
    ->withMessage('Assigned roles')
    ->sync([1, 2, 3]);

// Without an actor
$user->permissions()
    ->activity()
    ->withMessage('Permissions updated')
    ->sync([10, 20]);

// Attach and detach also fire activity
$user->tags()->activity()->attach(5);
$user->tags()->activity()->detach(5);

The activity log will record:

  • attached: IDs that were added
  • detached: IDs that were removed
  • unchanged: IDs that were already present

Development

make quality        # pint + phpstan + rector + insights + markdownlint + shellcheck
make quality-fast   # pint + phpstan + markdownlint
make test           # phpunit / pest

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for the project-specific workflow and quality standards.


Getting Help

License Security Policy Issues

Made with ❤️ by Zairakai