zakariatlilani/nova-busy-resource-field

Laravel Nova 字段。

dev-main 2024-02-22 14:41 UTC

This package is auto-updated.

Last update: 2024-09-22 15:56:35 UTC


README

Logo Nova Busy Resource Field by The3LabsTeam

Laravel Nova Busy Resource Field

你是否曾经梦想过在 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 模型可忙,你需要在其中添加特性 Zakariatlilani\NovaBusyResourceField\App\Traits\Busiable

use Zakariatlilani\NovaBusyResourceField\App\Traits\Busiable;

class Article extends Model{
    use Busiable;
}

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

    use Zakariatlilani\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();