laravel-activity maintained by zairakai
zairakai/laravel-activity
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 anyBelongsToManyrelation - Automatic diffing — logs attached, detached, and unchanged IDs on every
syncoperation - 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-activitylogmust 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 addeddetached: IDs that were removedunchanged: 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
Made with ❤️ by Zairakai