jmitech/filament-auditing
Filament Laravel 审计插件。
Requires
- php: ^8.1
- filament/filament: ^3.0-stable
- owen-it/laravel-auditing: ^13.0
- spatie/laravel-package-tools: ^1.9
Requires (Dev)
- filament/upgrade: ^3.0-stable
This package is auto-updated.
Last update: 2024-09-09 20:27:46 UTC
README
这是一个用于 Laravel Auditing 包的 Filament 插件。此插件包含一个审计关系管理器,您可以将其添加到 Filament 资源中。
此包提供了一个 Filament 资源管理器,在查看和编辑页面显示所有审计,并允许恢复审计。
安装
注意 此插件使用 Laravel Auditing 包。首先安装并配置此包。
您可以通过 composer 安装插件
composer require tapp/filament-auditing:"^3.0"
注意 对于 Filament 2.x,请检查 2.x 分支
您可以使用以下命令发布视图文件
php artisan vendor:publish --tag="filament-auditing-views"
您可以使用以下命令发布翻译文件
php artisan vendor:publish --tag="filament-auditing-translations"
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="filament-auditing-config"
这是已发布配置文件的内容
<?php return [ 'audits_sort' => [ 'column' => 'created_at', 'direction' => 'desc', ], 'audits_extend' => [ // 'url' => [ // 'class' => \Filament\Tables\Columns\TextColumn::class, // 'methods' => [ // 'sortable', // 'searchable' => true, // 'default' => 'N/A' // ] // ], ] ];
可以使用 audits_sort
修改审计表上的默认排序。
用法
要将审计表显示在您的 Filament 资源中,只需在资源的 getRelations
方法中添加 AuditsRelationManager::class
use Tapp\FilamentAuditing\RelationManagers\AuditsRelationManager; public static function getRelations(): array { return [ // ... AuditsRelationManager::class, ]; }
就这样,您已经设置好了!
如果您访问您的资源并编辑一些数据,您现在将在编辑和查看页面上看到审计表。
扩展列
如果您需要在 AuditsRelationManager 中添加一个表格中尚未存在的列,您可以在配置中使用以下示例中指定的格式进行添加,它将被添加到表构建器之前。要添加的列的名称是包含有关类其他信息的关联数组的键,如下所示。必须添加列的类实例,但如果不需要,可以省略方法或添加到需要的位置。
<?php return [ 'audits_extend' => [ 'url' => [ 'class' => \Filament\Tables\Columns\TextColumn::class, // required 'methods' => [ 'sortable', 'default' => 'NIL', ], ], ] ];
请在此信息添加到配置后,运行此命令以使更改生效。
php artisan optimize
目前不支持需要两个参数的方法。
权限
默认注册了两个权限,允许访问
audit
:查看审计restoreAudit
:恢复审计
您可以通过添加带有 audit
和 restoreAudit
的策略来覆盖这些权限。
事件触发
当恢复审计时,会触发 auditRestored
事件,因此您可以使用 $listeners 属性注册一个监听器,在审计恢复后执行一些额外的代码。
例如:在资源的编辑页面
protected $listeners = [ 'auditRestored', ]; public function auditRestored() { // your code }
事件监听器
审计关系管理器会监听 updateAuditsRelationManager
事件以刷新审计表。
因此,您可以在资源编辑页面(例如:在 PostResource
的编辑页面 -> app/Filament/Resources/PostResource/Pages/EditPost.php
)中更新表单时触发此事件
public function updated() { $this->dispatch('updateAuditsRelationManager'); }