Files
laralog/app/Filament/Resources/Posts/PostResource.php
T
ak 5f74dd76e4 feat: 文章/分类/评论关联细节完善
- 文章列表:会员插件注入「付费」徽章列(会员/付费¥xx,停插件即消失)
- 分类:真实文章数(withCount)、名称点击跳文章列表并按分类筛选(ListPosts booted 预置筛选)
- 分类:新增封面(medialibrary)+ 介绍(description 字段/表单);前台分类页顶部展示介绍区;SEO description + BreadcrumbList 结构化数据(GEO)
- 文章编辑:MarkdownEditor 内容区加大(26rem);文章编辑页新增「评论」关系管理页(可审/拒)
- 评论列表:文章列带摘要
- 三套主题补 .category-intro 样式
- 测试更新(付费徽章列)
2026-08-12 22:44:16 +08:00

70 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Filament\Resources\Posts;
use App\Filament\Resources\Posts\Pages\CreatePost;
use App\Filament\Resources\Posts\Pages\EditPost;
use App\Filament\Resources\Posts\Pages\ListPosts;
use App\Filament\Resources\Posts\Schemas\PostForm;
use App\Filament\Resources\Posts\Tables\PostsTable;
use App\Models\Post;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class PostResource extends Resource
{
protected static \UnitEnum|string|null $navigationGroup = '内容';
protected static ?string $navigationLabel = '文章';
protected static ?string $modelLabel = '文章';
protected static ?string $pluralModelLabel = '文章';
protected static ?string $model = Post::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
public static function form(Schema $schema): Schema
{
$schema = PostForm::configure($schema);
// 插件注入:会员付费设置、AI 选项等后台扩展
app(\App\Blog\Support\PluginManager::class)->doAction('filament.post_form', $schema);
return $schema;
}
public static function table(Table $table): Table
{
$table = PostsTable::configure($table);
// 插件注入:价格、会员专享等表格列
app(\App\Blog\Support\PluginManager::class)->doAction('filament.post_table', $table);
return $table;
}
public static function getRelations(): array
{
return [
\App\Filament\Resources\Posts\RelationManagers\CommentsRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => ListPosts::route('/'),
'create' => CreatePost::route('/create'),
'edit' => EditPost::route('/{record}/edit'),
];
}
}