the-3labs-team / nova-busy-resource-field
Laravel Nova 字段。
v1.0.4
2024-09-24 07:52 UTC
Requires
- php: ^7.3|^8.0
Requires (Dev)
- laravel/pint: ^1.16
This package is auto-updated.
Last update: 2024-09-24 07:53:32 UTC
README
Laravel Nova Busy Resource Field
你是否曾梦想过在 Laravel Nova 中有一个机制来告诉你某个资源是否被其他用户占用?
现在介绍 Nova Resource Busy Field,这是第一个允许你了解资源是否被其他用户占用的 Laravel Nova 包。
来自 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();