digitalindoorsmen/laravel-actor-trails
最新稳定版本:v0.1.3
Composer 安装命令:
composer require digitalindoorsmen/laravel-actor-trails
包简介
Track created_by, modified_by, and deleted_by as JSON objects in your Laravel models, with support for multiple guards and polymorphic actors.
关键字:
README 文档
README
Track created_by, modified_by, and deleted_by as JSON objects in your Laravel models, with support for multiple guards and polymorphic actors.
✨ What It Does
This package automatically tracks who created, modified, or deleted your Eloquent models.
Instead of just storing a raw user_id, it stores a self‑contained JSON object with details about the actor at the time of the action:
{
"id": "16",
"user_type": "Admin",
"auth_table": "users",
"display_name": "Kelly Montannavue"
}
This makes your audit trails:
- Polymorphic → works with multiple authenticatable models (
User,Admin,Member, etc.) - Immutable → keeps a snapshot of the actor’s display name and type, even if the user record changes later
- Automatic → hooks into Eloquent events (
creating,updating,deleting) - Configurable → choose which attributes to store in the JSON
🚀 Installation
You can install the package via composer:
composer require digitalindoorsmen/laravel-actor-trails
Publish the config file:
php artisan vendor:publish --tag="laravel-actor-trails-config"
Generate a migration for a specific table:
php artisan actor-trails:add posts php artisan migrate
This will add created_by, modified_by, and deleted_by JSON columns to the posts table.
⚡ Usage
Add the HasActorTrails trait to any model you want to track:
use DigitalIndoorsmen\LaravelActorTrails\Traits\HasActorTrails; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class Post extends Model { use HasActorTrails, SoftDeletes; protected $fillable = ['title', 'body']; }
Now whenever you create, update, or soft delete a Post, the actor will be stored automatically:
$post = Post::create(['title' => 'Hello World']); // Example created_by value: [ "id" => 1, "user_type" => "User", "auth_table" => "users", "display_name" => "Alice" ]
⚙️ Config
The published config file (config/actor-trails.php) lets you define which attributes are stored:
return [ 'attributes' => [ 'id' => fn($user) => $user->getAuthIdentifier(), 'user_type' => fn($user) => class_basename($user), 'auth_table' => fn($user) => $user->getTable(), 'display_name' => fn($user) => $user->name ?? $user->username ?? 'Unknown', ], ];
You can override this per model if needed.
🧪 Testing
composer test
📜 Changelog
Please see CHANGELOG for more information on what has changed recently.
🤝 Contributing
Please see CONTRIBUTING for details.
🔒 Security
Please review our security policy on how to report security vulnerabilities.
👏 Credits
📄 License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-26