0侵入写model改变日志 咋写啊

最终想实现

时间 操作人 操作记录 IP host
YYYY-mm-dd admin 修改:[商品] 金额 10.00->22.00; unit 1->2
新增: [商品] 金额 11.00
删除:[user] [id:1]
8.8.8.8 内网ip或主机名
YYYY-mm-dd 系统(CLI) 修改: [订单] 状态 WAITING->PAY_SUCCESS 内网ip或主机名或job名称如/app/jobs/XXXJob

0侵入式

不改动(一行都不能动)当前系统现有逻辑(控制器、业务逻辑部分)、队列的前提下实现

问题

比如如果是一个异步任务,应该单个任务里的所有model新增、变动视为【一次[请求]】。不能视整个进程的生命周期为一次请求。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
1年前 评论
周小云 (楼主) 1年前
cevin (作者) 1年前
周小云 (楼主) 1年前
cevin (作者) 1年前
周小云 (楼主) 1年前
周小云 (楼主) 1年前
讨论数量: 16
1年前 评论
周小云 (楼主) 1年前
cevin (作者) 1年前
周小云 (楼主) 1年前
cevin (作者) 1年前
周小云 (楼主) 1年前
周小云 (楼主) 1年前

可以看看这个包
spatie.be/docs/laravel-activitylog...

class YourModel extends Model
{
    use  LogsActivity;

    protected $table = 'table_name';

    protected $guarded = [];

    protected static $logUnguarded = true;

    protected static $recordEvents = ['created', 'updated']; //model event 监听记录

    protected static $logOnlyDirty = true;

    protected static $logAttributes = [];
}

具体参数字段看文档

1年前 评论
周小云 (楼主) 1年前
周小云 (楼主) 1年前
dengxit (作者) 1年前
aab

粗暴一点的可以直接监听所有的事件,以及类似的事件,有个小问题就是最好使用同步事件

DB::listen('model.update: *', function () {});
1年前 评论

aop 参考hyperf aop文档

1年前 评论
周小云 (楼主) 1年前
周小云 (楼主) 1年前
markyanggang (作者) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!