如何在Laravel 5.4中存储Elount模型所有更改的日志?
我想将对Eloquent模型中所有字段的更改存储到数据库中 我可以使用如何在Laravel 5.4中存储Elount模型所有更改的日志?,laravel,Laravel,我想将对Eloquent模型中所有字段的更改存储到数据库中 我可以使用创建的和更新的事件来完成,但是多个对外关系(描述为单独的表)存在问题 例如: User login Roles -> hasMany 当我更新登录字段时,很容易将新旧值写入数据库,但当我更新角色关系时,什么也没发生 如何跟踪所有的对外关系(如hasMany、hasManyThrough、ManyToMany)?没有嵌入式的简单方法来跟踪。 Eloquent没有提供任何方法通过设计在相关模型上实现观察器。
创建的
和更新的
事件来完成,但是多个
对外关系(描述为单独的表)存在问题
例如:
User
login
Roles -> hasMany
当我更新登录字段时,很容易将新旧值写入数据库,但当我更新角色关系时,什么也没发生
如何跟踪所有的对外关系(如hasMany、hasManyThrough、ManyToMany)?没有嵌入式的简单方法来跟踪。
Eloquent没有提供任何方法通过设计在相关模型上实现观察器。泰勒()拒绝了许多这样的提议 你唯一能做的就是创建自己的方法。 您有许多可能性,以下是按复杂性顺序排列的一些可能性(其中一些是“脏的”:-)
- 在每个相关模型上添加一个创建的和更新的观察者
- 在有说服力的实例上重写
或创建自己的save()
方法,并在保存前从该方法检索父对象并调用其日志方法。(这是一个有点“脏”的imho)saveAndFire()
- 封装所有持久性层并在保存对象时自己触发事件(例如,查看存储库模式)
Eloquent没有提供任何方法通过设计在相关模型上实现观察器。泰勒()拒绝了许多这样的提议 你唯一能做的就是创建自己的方法。 您有许多可能性,以下是按复杂性顺序排列的一些可能性(其中一些是“脏的”:-)
- 在每个相关模型上添加一个创建的和更新的观察者
- 在有说服力的实例上重写
或创建自己的save()
方法,并在保存前从该方法检索父对象并调用其日志方法。(这是一个有点“脏”的imho)saveAndFire()
- 封装所有持久性层并在保存对象时自己触发事件(例如,查看存储库模式)