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

Laravel Auditing出现重复审计条目,寻求解决方案

问题:Laravel Auditing生成重复审计条目

已按照Laravel Auditing官方文档完成安装,修改模型代码如下:

class MyModel extends Model implements Auditable
{
    use CamelCaseAttributes;
    use AuditingAuditable;
    // ...
}

目前遇到的问题是:audits表中,每个操作(创建/更新等)都会生成两条完全相同的审计条目。通过DB::enableQueryLog和DB::getQueryLog查看查询日志,发现仅执行了1条更新语句,但向audits表插入了两条完全相同的数据。

环境信息:

php => 8.0
laravel => 8.0
laravel-audits => 13.6
解决方案

以下是几种常见的排查方向和解决办法:

  • 检查模型保存操作是否被重复触发
    确认业务代码中是否对同一模型实例调用了多次save()/update()方法,或者存在观察者、事件监听器重复触发模型保存的情况。可以在模型的saving或saved事件中添加日志,记录触发次数,定位重复来源。

  • 排查服务提供者/中间件重复注册
    打开config/app.php,检查OwenIt\Auditing\AuditingServiceProvider::class是否被重复添加到服务提供者列表;同时确认路由中是否重复应用了Auditing相关的中间件。

  • 检查Trait冲突或重复引用
    确认模型是否通过其他Trait间接引入了AuditingAuditable,或者CamelCaseAttributes与AuditingAuditable存在兼容性冲突。可以暂时移除CamelCaseAttributes Trait进行测试,看是否还会生成重复条目。

  • 临时禁用重复审计(Workaround)
    如果已定位到某段代码导致重复触发,可以使用withoutAuditing方法临时禁用审计:

    MyModel::withoutAuditing(function () use ($model) {
        $model->update([/* 你的更新字段 */]);
    });
    

    注意:这只是临时解决办法,建议优先找到根本原因修复。

  • 升级Laravel Auditing版本
    版本13.6可能存在已知的重复审计Bug,建议升级到13.x分支的最新稳定版本,同时查看官方仓库的Issues,确认是否有类似问题已被修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:32:07