You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spatie Laravel ActivityLog:按增删改操作差异化记录日志

差异化配置Activitylog日志记录规则

可以通过LogOptions提供的setLogOptionsCallback回调方法,根据当前操作的事件类型(新增created、更新updated、删除deleted)动态调整日志记录规则,代码示例如下:

public function getActivitylogOptions(): LogOptions
{
    return LogOptions::defaults()
        ->logOnlyDirty()
        ->setLogOptionsCallback(function (LogOptions $options, string $eventName) {
            match($eventName) {
                'created' => $options->logOnly(['name', 'email']), // 新增时仅记录指定字段
                'updated' => $options->logAll(), // 更新时记录所有修改过的字段(logOnlyDirty已生效)
                'deleted' => $options->logOnly(['id', 'name']), // 删除时按需记录字段
            };
            return $options;
        });
}

说明

  • setLogOptionsCallback会在日志写入前触发,传入当前的LogOptions实例和事件名称
  • 新增操作通过logOnly指定需要记录的字段,避免记录全部数据
  • 更新操作保留logAll()配合logOnlyDirty(),确保只记录实际被修改的字段
  • 删除操作可根据业务需求自定义要留存的关键字段

内容的提问来源于stack exchange,提问作者Phyron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 21:40:36