activity_log
spatie/laravel-activitylog 是一個 Laravel 套件,用來自動記錄模型或自訂操作的「活動紀錄 / 操作日誌」,例如:
spatie/laravel-activitylog
套件的主要功能包含:
created
updated
deleted
composer require spatie/laravel-activitylog # 發佈 migration php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-migrations" # 執行 migration 建立 activity_log 表 php artisan migrate
use Spatie\Activitylog\Traits\LogsActivity; class Post extends Model { use LogsActivity; protected static $logAttributes = ['title', 'content']; protected static $logName = 'post'; protected static $logOnlyDirty = true; // 只記錄變更過的欄位 }
$post = Post::create(['title' => 'Hello', 'content' => 'World']); $post->update(['title' => 'Hello Laravel']); $post->delete(); // 套件會自動在 activity_log 表中新增紀錄,包含: // - 操作的使用者(預設為 auth()->user()) // - 操作的模型與 ID // - 操作類型(created、updated、deleted) // - 欄位變更前後值(before / after)
use Spatie\Activitylog\Models\Activity; Activity::all(); // 取得所有操作紀錄 $post->activities; // 取得某個模型的歷史紀錄
activity() ->causedBy(auth()->user()) ->performedOn($post) ->withProperties(['action' => 'export']) ->log('匯出文章'); // 範例紀錄 // User Jack 匯出文章 on post#12 // properties: { action: 'export' }
activity()->causedBy(User::find(1))->log('系統管理員操作');
$logAttributes
$logOnlyDirty
$logName
$recordEvents
activity()
如需進一步設定細節或客製記錄格式,可參考官方文件: 👉 https://spatie.be/docs/laravel-activitylog
Log Activity(將所有活動儲存在
activity_log表中)spatie/laravel-activitylog
介紹
spatie/laravel-activitylog是一個 Laravel 套件,用來自動記錄模型或自訂操作的「活動紀錄 / 操作日誌」,例如:套件的主要功能包含:
created、updated、deleted操作安裝
composer require spatie/laravel-activitylog # 發佈 migration php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-migrations" # 執行 migration 建立 activity_log 表 php artisan migrate基本使用方法
模型中啟用日誌功能
use Spatie\Activitylog\Traits\LogsActivity; class Post extends Model { use LogsActivity; protected static $logAttributes = ['title', 'content']; protected static $logName = 'post'; protected static $logOnlyDirty = true; // 只記錄變更過的欄位 }自動記錄內容
$post = Post::create(['title' => 'Hello', 'content' => 'World']); $post->update(['title' => 'Hello Laravel']); $post->delete(); // 套件會自動在 activity_log 表中新增紀錄,包含: // - 操作的使用者(預設為 auth()->user()) // - 操作的模型與 ID // - 操作類型(created、updated、deleted) // - 欄位變更前後值(before / after)查詢操作紀錄
use Spatie\Activitylog\Models\Activity; Activity::all(); // 取得所有操作紀錄 $post->activities; // 取得某個模型的歷史紀錄記錄自訂事件
activity() ->causedBy(auth()->user()) ->performedOn($post) ->withProperties(['action' => 'export']) ->log('匯出文章'); // 範例紀錄 // User Jack 匯出文章 on post#12 // properties: { action: 'export' }指定紀錄使用者
activity()->causedBy(User::find(1))->log('系統管理員操作');支援選項
$logAttributes$logOnlyDirty$logName$recordEventsactivity()如需進一步設定細節或客製記錄格式,可參考官方文件:
👉 https://spatie.be/docs/laravel-activitylog