bolechen/nova-activitylog

用于监控 Laravel Nova 用户活动的日志工具。

v0.4.3 2023-12-08 02:44 UTC

This package is auto-updated.

Last update: 2024-09-05 04:11:08 UTC


README

StyleCI Packagist Downloads Packagist Version GitHub FOSSA Status

用于监控 Laravel Nova 用户活动的日志工具。

screenshot

安装

您可以通过 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 注册此工具。通常在 NovaServiceProvidertools 方法中完成此操作。

// 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)。有关更多信息,请参阅 许可文件

FOSSA Status