the-3labs-team/nova-busy-resource-field

v1.0.4 2024-09-24 07:52 UTC

README

Logo Nova Busy Resource Field by The3LabsTeam

Laravel Nova Busy Resource Field

Latest Version on Packagist Maintainability Total Downloads

你是否曾梦想过在 Laravel Nova 中有一个机制来告诉你某个资源是否被其他用户占用?

现在介绍 Nova Resource Busy Field,这是第一个允许你了解资源是否被其他用户占用的 Laravel Nova 包。

Demo Nova Busy Resource Field by The3LabsTeam

来自 The3LabsTeam 的秘密实验室,这是一个完全开源的包,旨在让使用 Laravel Nova 作为多用户 CMS 的人们生活更加便利。

🌟 这里有一些出色的功能

  • 它对模型不可知,你可以决定哪个资源将被视为“可占用”
  • 完全可配置,你可以选择阈值超时和要删除的旧日志
  • 它是 Laravel Nova 的原生,只需要启动一个迁移
  • 它是完全可逆的,不会触及 Laravel Nova 模型和/或视图
  • 让你知道资源索引中是否有占用
  • 如果你进入一个忙碌资源的编辑,你会收到一个警报

安装

要安装此包,在你的 composer.json 中添加仓库

composer require the-3labs-team/nova-busy-resource-field

你需要发布迁移文件

php artisan vendor:publish --tag=nova-busy-resource-field-migrations

记得启动迁移

php artisan migrate

此外,你还可以发布配置文件

php artisan vendor:publish --tag=nova-busy-resource-field-config

使用方法

首先,你需要使一个模型“可占用”。例如,如果你想使 Article 模型可占用,你需要向它添加 trait The3labsTeam\NovaBusyResourceField\App\Traits\Busiable

use The3labsTeam\NovaBusyResourceField\App\Traits\Busiable;

class Article extends Model{
    use Busiable;
}

然后,在你的 Nova 资源中,你可以添加字段

    use The3labsTeam\NovaBusyResourceField\NovaBusyResourceField;


    public function fields(NovaRequest $request)
    {
        return [
            // ...
            
            NovaBusyResourceField::make('')->withMeta([
                'saveEvery' => 30000 // In milliseconds
            ]),
            
            // ...
        ];
    }

为了获得最佳体验,你可以删除数据库中的旧记录。为此,你需要在 App\Console\Kernel 中添加命令,每分钟删除旧记录。

    $schedule->command('nova-busy-resource-field:run')->everyMinute()->withoutOverlapping();