parallax / filament-comments
为您的 Filament 资源添加评论。
Requires
- php: ^8.1
- filament/filament: ^3.0
- illuminate/contracts: ^10.0 | ^11.0
- spatie/laravel-package-tools: ^1.15.0
README
为您的 Filament 资源添加评论。
安装
通过 composer 安装包
composer require parallax/filament-comments
发布并运行迁移
php artisan vendor:publish --tag="filament-comments-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="filament-comments-config"
您可以使用以下命令发布语言文件
php artisan vendor:publish --tag="filament-comments-translations"
可选地,您可以使用以下命令发布视图
php artisan vendor:publish --tag="filament-comments-views"
快速入门
1. 添加模型特性
首先打开您想添加 Filament Comments 的 eloquent 模型。
namespace App\Models; use Parallax\FilamentComments\Models\Traits\HasFilamentComments; class Product extends Model { use HasFilamentComments; }
2. 添加 Filament 资源的评论
您有三种方式在 Filament 资源中使用此插件
1. 页面操作
打开您想显示评论操作的页面,这很可能是 ViewResource
页面。
将 CommentsAction
添加到 getHeaderActions()
方法。
<?php namespace App\Filament\Resources\ProductResource\Pages; use Parallax\FilamentComments\Actions\CommentsAction; class ViewProduct extends ViewRecord { protected function getHeaderActions(): array { return [ CommentsAction::make(), ]; } }
您可以根据需要自定义页面操作。
2. 表格操作
打开您想显示评论表格操作的资源。
将 CommentsAction
添加到 $table->actions()
方法。
<?php namespace App\Filament\Resources; use Parallax\FilamentComments\Tables\Actions\CommentsAction; class ProductResource extends Resource { public static function table(Table $table): Table { return $table ->actions([ CommentsAction::make(), ]); } }
您可以根据需要自定义表格操作。
3. 信息列表条目
您也可以在信息列表中使用评论组件。
将 CommentsEntry
添加到 $infolist->schema()
方法。
<?php namespace App\Filament\Resources; use Parallax\FilamentComments\Infolists\Components\CommentsEntry; class ProductResource extends Resource { public static function infolist(Infolist $infolist): Infolist { return $infolist ->schema([ CommentsEntry::make('filament_comments'), ]); } }
请注意,这不能与同一页面的评论操作结合使用。
授权
默认情况下,所有用户都可以查看和创建评论,以及仅删除他们自己的评论。
如果您想更改此行为,可以为 Parallax\FilamentComments\Models\FilamentComment
模型创建自己的 eloquent 模型策略。
您应该在 filament-comments
配置文件中定义策略类。
return [ 'model_policy' => \Parallax\FilamentComments\Policies\FilamentCommentPolicy::class, ];
修剪已删除的评论
评论记录默认设置为在软删除后 30 天被清理。您可以在配置文件中更改此值
return [ 'prune_after_days' => 30, ];
配置模型后,您应该在应用程序的 Kernel
类中安排执行 model:prune
Artisan 命令。不要忘记明确提及 FilamentComment
类。您可以自由选择此命令运行的适当间隔
namespace App\Console; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Parallax\FilamentComments\Models\FilamentComment; class Kernel extends ConsoleKernel { protected function schedule(Schedule $schedule) { $schedule->command('model:prune', [ '--model' => [FilamentComment::class], ])->daily(); // This will not work, as models in a package are not used by default // $schedule->command('model:prune')->daily(); } }
变更日志
有关最近更改的更多信息,请参阅 变更日志。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。