cgdsoftware / versioning
使用Laravel中的乐观锁模式防止更新冲突
v2.0.4
2023-01-27 23:09 UTC
Requires
- php: >=8.0
- laravel/framework: ^8.0
This package is auto-updated.
Last update: 2024-09-14 23:05:29 UTC
README
使用Laravel中的乐观锁模式防止更新冲突
此包可以在Enso生态系统之外独立工作。
要查看实时示例和演示,您可以访问 laravel-enso.com
安装
- 安装包
composer require laravel-enso/versioning
- 运行迁移
- 在您希望进行版本控制的模型上使用
Versionable
特性。
默认情况下,版本值保存在一个名为 'version' 的属性中,但可以进行自定义(见下文)。
功能
- 包创建了一个
versionings
表,其中保存所有可版本化模型的版本 - 通过在模型上使用
Versionable
特性,版本控制将自动处理 - 默认情况下,特性在模型检索后附加一个
version
属性,用于跟踪版本,并在更新时期望模型上存在相同的属性 - 默认版本属性可以通过在模型上使用
protected $versioningAttribute = 'customVersionAttribte'
进行自定义 - 可以在已有数据库记录的模型上使用特性,版本控制从检索这些模型的第一次开始
- 当删除可版本化模型时,其版本控制也将被删除。如果模型使用
SoftDeletes
,则版本控制不会删除,除非执行forceDelete
- 如果更新时版本不匹配,则抛出
ConflictHttpException
- 包内包含测试
配置与使用
请务必查看此包的完整文档,文档位于 docs.laravel-enso.com
贡献
欢迎。拉取请求很好,但问题也很好。
许可证
此包在MIT许可证下发布。