crumbls / laravel-locks
当用户正在编辑时,允许锁定和解锁模型。类似于WordPress的帖子锁定。
Requires
- laravel/framework: ^8.0
Requires (Dev)
- laravel/framework: ^8.0
This package is auto-updated.
Last update: 2024-09-05 08:37:06 UTC
README
这是一个非常简单且不规范的包,旨在提供类似于WordPress帖子锁定的工具。
我们曾遇到过同时有多个用户正在编辑同一实体的情况,这导致用户在实时中相互覆盖。这为我们提供了一个非常基础的实现,以添加特性来检查模型是否当前已锁定,以及能够锁定或解锁它。
这是一个全新的包,因此我还没有将其开发到超出我们需求的地步。如果您需要看到某些缺失的功能,请在twitter @chasecmiller上给我发消息,我们将看看是否能实现。我开始构建一个外观,但目前还没有需求。
局限性
将来,如果有需要,我们将解决这个问题。
- 用户必须使用数字ID。
- 模型必须使用数字ID。
安装
composer install crumbls/laravel-locks
将 \Crumbls\Lock\Traits\HasLock 特性添加到您的模型中。
检查模型是否已锁定
$model->isLocked()
检查模型是否未锁定
$model->isUnlocked()
锁定模型
$model->lock()->create()
或 \Lock::lock($model)
解锁模型
$model->lock()->delete()
或 \Lock::unlock($model)
您还可以监听 \Crumbls\Lock\Events\ModelLocked 和 \Crumbls\Lock|events\ModelUnlocked 事件,以了解模型何时锁定或解锁。它们都传递一个引用,即受影响的模型。
Filament
我们非常喜欢使用Filament。您可以为模型添加一个布尔列,用于显示lock.id以查看项目是否已锁定。我将在接下来的几周内开发很多相关功能。
摘要
这个包并不是为了公开使用而构建的,但我被要求发布它。如果有任何问题,请告诉我,我会尝试安排时间修复它。