crumbls/laravel-locks

当用户正在编辑时,允许锁定和解锁模型。类似于WordPress的帖子锁定。

dev-main 2022-10-05 04:33 UTC

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以查看项目是否已锁定。我将在接下来的几周内开发很多相关功能。

摘要

这个包并不是为了公开使用而构建的,但我被要求发布它。如果有任何问题,请告诉我,我会尝试安排时间修复它。