bolechen / nova-activitylog
用于监控 Laravel Nova 用户活动的日志工具。
Requires
- laravel/nova: ^4.0
- spatie/laravel-activitylog: ^3.9|^4.0
README
用于监控 Laravel Nova 用户活动的日志工具。
- 幕后 spatie/laravel-activitylog 被使用。
安装
您可以通过 composer 将此包安装到使用 Nova 的 Laravel 应用程序中。
composer require bolechen/nova-activitylog
您可以使用以下命令发布迁移:
php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-migrations"
注意:默认迁移假设您正在使用整数作为模型 ID。如果您正在使用 UUID 或其他格式,请在继续之前调整已发布迁移中 subject_id 和 causer_id 字段的格式。
发布迁移后,您可以通过运行迁移来创建 activity_log
表:
php artisan migrate
您可以选择使用以下命令发布配置文件:
php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="config"
您可能只想记录 nova 的操作,将此行放入 .env
文件中,关闭默认记录器。
ACTIVITY_LOGGER_ENABLED=false
如何使用
接下来,您必须使用 Nova 注册此工具。通常在 NovaServiceProvider
的 tools
方法中完成此操作。
// in app/Providers/NovaServiceProvder.php // ... public function tools() { return [ // ... new \Bolechen\NovaActivitylog\NovaActivitylog(), ]; }
由于后端使用 spatie/laravel-activitylog
包,您需要让模型使用 Spatie\Activitylog\Traits\LogsActivity
特性。
以下是一个示例
use Illuminate\Database\Eloquent\Model; use Spatie\Activitylog\Traits\LogsActivity; class NewsItem extends Model { use LogsActivity; protected $fillable = ['name', 'text']; protected static $logAttributes = ['name', 'text']; }
对于更高级的使用,可以查看文档:https://docs.spatie.be/laravel-activitylog/v3/advanced-usage/logging-model-events
授权
在注册工具时使用 ->canSee()
或 ->canSeeWhen()
的典型工具授权使用方法将不会起作用。要授权工具,只需为 ActivityLog
模型 创建并注册 Laravel 策略。如果用户无法根据策略查看它们,则工具不会显示。
自定义
如果您想自定义工具。例如:添加筛选器或卡片,您可以创建自己的资源文件并扩展原始文件,如下所示
use Bolechen\NovaActivitylog\Resources\Activitylog; class Activity extends Activitylog { public function filters(Request $request) { return [ // Your customize filters, etc... new Filters\LogsType(), ]; } }
接下来,使用以下命令发布配置文件:
php artisan vendor:publish --provider="Bolechen\\NovaActivitylog\\ToolServiceProvider" --tag="config"
并更改 config/nova-activitylog.php
中的 resource
为您的自定义 nova 资源。
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。