wearesweet / laravel-revisonable
将 HasRevisions 特性应用于任何模型,以便能够:查看变更历史、回滚到模型的前版本,并在将数据持久化到数据库之前轻松管理变更。
dev-master
2020-07-29 09:13 UTC
Requires
- php: ^7.4
- illuminate/contracts: ^6|^7
- illuminate/database: ^6|^7
- illuminate/events: ^6|^7
- illuminate/support: ^6|^7
Requires (Dev)
- phpunit/phpunit: ^8.4|^9.0
This package is auto-updated.
Last update: 2024-09-29 05:48:52 UTC
README
将 HasRevisions 特性应用于任何模型,以便能够:查看变更历史、回滚到模型的前版本,并在将数据持久化到数据库之前轻松管理变更。
关于We Are Sweet
We Are Sweet 是一家小型但强大的wb代理机构,为各种客户提供设计、开发和咨询服务。
安装和用法
此包需要 PHP 7.6 和 Laravel 6 或更高版本。
运行
$ composer require wearesweet/laravel-revisionable
HasRevisions 特性
将 HasRevisions 特性添加到您的模型中。
class User { use WeAreSweet\LaravelRevisionable\Traits\HasRevisions; }
监听特定属性
覆盖 revisionableAttributes 以返回您希望允许修订的属性数组。
如果与 persistRevisions 一起使用 revisionableAttributes,则数组中的属性将作为修订存储,稍后可以持久化(批准),而数组中不存在的其他属性将立即持久化。
class User { use WeAreSweet\LaravelRevisionable\Traits\HasRevisions; public function revisionableAttributes() { return 'name'; } }
防止未经批准将模型数据持久化到数据库
您可以让模型不直接保存到模型,而是将数据保存到修订中,稍后可以应用于模型。
这对于存储模型的草稿状态或进行审核和批准变更很有用。
为此,将 persistRevisions 方法添加到您的类中,并让它返回 false。
class User { use WeAreSweet\LaravelRevisionable\Traits\HasRevisions; public function persistRevisions() { return false; } }
查看所有模型的修订历史
App\User::first()->revisions;
查看待定的模型修订
App\User::first()->revisions()->pending()->get();
批准修订
App\User::first()->revisions->first()->approve();
查看合并的待定修订数据
App\User::first()->pendingRevisions();
示例输入/输出
输入
{ "user":{ "revisions": [ { "date": "2020", "data": {"name": "Ben"} }, { "date": "2010", "data": {"name": "Neb", "age": 23} } ] } }
输出
{ "name": "Ben", "age": 23 }
批准所有模型的修订
App\User::first()->approveAllRevisions();
测试
使用以下命令运行测试
composer test
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 developers@wearesweet.co.uk 而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。