zakariatlilani / nova-busy-resource-field
Laravel Nova 字段。
dev-main
2024-02-22 14:41 UTC
Requires
- php: ^7.3|^8.0
This package is auto-updated.
Last update: 2024-09-22 15:56:35 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 模型可忙,你需要在其中添加特性 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();

