rmoore / change-recorder
记录对laravel模型所做的更改
Requires
- illuminate/support: ^5.3
Requires (Dev)
- fzaninotto/faker: ~1.4
- illuminate/database: ^5.3
- illuminate/events: ^5.3
- illuminate/routing: ^5.3
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.0
- symfony/css-selector: 3.1.*
- symfony/dom-crawler: 3.1.*
This package is auto-updated.
Last update: 2024-08-29 04:09:12 UTC
README
记录对eloquent模型(如更新/创建/删除)所做的更改,并提供方法以检查模型的历史记录
安装 composer require rmoore/change-recorder
将 RMoore\ChangeRecorder\ChangeRecorderServiceProvider::class
添加到 config\app.php 中的 providers 数组
运行 artisan migrate
创建数据库表
然后将特质 RMoore\ChangeRecorder\RecordsChanges
添加到您的 eloquent 模型中。
这将自动记录所做的更改
要查看更改,我们有几种选择
1. 我们可以调用 $model->changes
,这将返回一个包含每个更改存储的所有数据的 Change 实例集合
2. 我们可以调用 $model->getHistory()
,这将返回与选项 1 相同的结果
如果您希望找到特定的更改,可以将字段名称作为参数传递给 getHistory,或者可以使用魔法方法。请注意,这些方法将只返回当时只有一个字段被更改的更改。如果您希望执行更深入的搜索,请继续阅读
1. 我们可以调用 get history 并传递我们想要的字段作为参数,例如 $model->getHistory('name')
将返回用户名称的历史记录
2. 我们可以使用魔法方法,例如使用 get{fieldName}History() 的形式,例如 $model->getNameHistory()
将返回与选项 3 相同的结果
对于深入搜索(即找到在同时更改了其他字段时的更改),您可以使用 searchHistory 方法。
第一种选择是将字段作为参数传递,例如 $model->searchHistory('name')
第二种选择是使用魔法方法,例如 $model->searchNameHistory()
第三种选择是将布尔值作为 getHistory 的第二个参数传递,例如 $model->getHistory('name', true)
将返回与选项 1 和 2 相同的结果