laravel-liberu/versioning

使用 Laravel 中的乐观锁模式防止更新冲突

v2.0.10 2023-10-13 06:37 UTC

README

Codacy Badge StyleCI License Total Downloads Latest Stable Version

使用 Laravel 中的乐观锁模式防止更新冲突

此包可以在不依赖Liberu生态系统的情况下独立运行。

对于实时示例和演示,您可以访问liberu.co.uk

安装

  1. 安装包:composer require laravel-liberu/versioning
  2. 运行迁移
  3. 在您希望版本化的模型上使用Versionable特质。

默认情况下,版本值保存在一个名为'version'的属性中,但可以进行自定义(见下文)。

特性

  • 该包创建一个versionings表,其中保存所有可版本化模型的版本
  • 通过在模型上使用Versionable特质,自动处理版本化
  • 默认情况下,特质在模型检索后追加一个version属性,用于跟踪版本,并在调用更新时期望模型上存在相同的属性
  • 默认版本化属性可以通过在模型上使用protected $versioningAttribute = 'customVersionAttribte'进行自定义
  • 特质可以用于已经在数据库中具有记录的模型,版本化从检索这些模型的第一次开始
  • 当删除可版本化模型时,其版本化也将被删除。如果模型使用SoftDeletes,除非执行forceDelete,否则版本化不会被删除
  • 如果更新时版本不匹配,则抛出ConflictHttpException
  • 包中包含测试

配置与使用

请查阅docs.liberu.co.uk上提供的此包的完整文档。

贡献

欢迎。拉取请求是很好的,但问题也很好。

许可协议

此包在MIT许可协议下发布。