filament-resource by mwguerra/claude-code-plugins
npx skills add https://github.com/mwguerra/claude-code-plugins --skill filament-resource本技能生成完整的 FilamentPHP v4 资源,包括表单架构、表格配置、关系管理器和自定义页面。所有生成的代码均遵循官方文档模式。
重要提示: 在生成任何资源之前,请阅读:
/home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/general/03-resources//home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/forms//home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/tables/确定:
使用 Laravel artisan 创建资源:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 基础资源
php artisan make:filament-resource ModelName
# 使用生成标志(根据模型创建表单/表格)
php artisan make:filament-resource ModelName --generate
# 支持软删除
php artisan make:filament-resource ModelName --soft-deletes
# 仅查看页面
php artisan make:filament-resource ModelName --view
# 简单资源(使用模态表单而非页面)
php artisan make:filament-resource ModelName --simple
阅读表单字段文档并实现:
use Filament\Forms;
use Filament\Forms\Form;
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Section::make('基础信息')
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\Textarea::make('description')
->rows(3)
->columnSpanFull(),
]),
Forms\Components\Section::make('设置')
->schema([
Forms\Components\Toggle::make('is_active')
->default(true),
Forms\Components\Select::make('status')
->options([
'draft' => '草稿',
'published' => '已发布',
]),
]),
]);
}
阅读表格文档并实现:
use Filament\Tables;
use Filament\Tables\Table;
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable()
->sortable(),
Tables\Columns\IconColumn::make('is_active')
->boolean(),
Tables\Columns\BadgeColumn::make('status')
->colors([
'warning' => 'draft',
'success' => 'published',
]),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
Tables\Filters\SelectFilter::make('status')
->options([
'draft' => '草稿',
'published' => '已发布',
]),
Tables\Filters\TernaryFilter::make('is_active'),
])
->actions([
Tables\Actions\ViewAction::make(),
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
对于关系,创建关系管理器:
php artisan make:filament-relation-manager ResourceName RelationName column_name
在资源中注册:
public static function getRelations(): array
{
return [
RelationManagers\CommentsRelationManager::class,
RelationManagers\TagsRelationManager::class,
];
}
定义资源页面:
public static function getPages(): array
{
return [
'index' => Pages\ListModels::route('/'),
'create' => Pages\CreateModel::route('/create'),
'view' => Pages\ViewModel::route('/{record}'),
'edit' => Pages\EditModel::route('/{record}/edit'),
];
}
实现策略方法:
public static function canViewAny(): bool
{
return auth()->user()->can('view_any_model');
}
public static function canCreate(): bool
{
return auth()->user()->can('create_model');
}
TextInput::make() - 单行文本Textarea::make() - 多行文本RichEditor::make() - 所见即所得编辑器MarkdownEditor::make() - Markdown 编辑器Select::make() - 下拉选择Radio::make() - 单选按钮Checkbox::make() - 单个复选框CheckboxList::make() - 多个复选框Toggle::make() - 切换开关DatePicker::make() - 仅日期DateTimePicker::make() - 日期和时间TimePicker::make() - 仅时间FileUpload::make() - 文件上传SpatieMediaLibraryFileUpload::make() - 媒体库Select::make()->relationship() - BelongsTo 选择CheckboxList::make()->relationship() - BelongsToManyRepeater::make()->relationship() - HasMany 内联Section::make() - 卡片区域Fieldset::make() - 字段集分组Tabs::make() - 选项卡区域Grid::make() - 网格布局Split::make() - 分割布局TextColumn::make() - 基础文本IconColumn::make() - 布尔图标ImageColumn::make() - 图像缩略图BadgeColumn::make() - 徽章样式ColorColumn::make() - 颜色样本->searchable() - 启用搜索->sortable() - 启用排序->toggleable() - 可隐藏/显示->wrap() - 文本换行->limit() - 截断文本对于每个资源,生成:
app/Filament/Resources/ModelResource.phpapp/Filament/Resources/ModelResource/Pages/app/Filament/Resources/ModelResource/RelationManagers/tests/Feature/Filament/ModelResourceTest.php每周安装量
1.2K
仓库
GitHub 星标数
23
首次出现
2026年2月7日
安全审计
已安装于
codex996
opencode995
gemini-cli993
github-copilot991
kimi-cli988
amp987
This skill generates complete FilamentPHP v4 resources including form schemas, table configurations, relation managers, and custom pages. All generated code follows official documentation patterns.
CRITICAL: Before generating any resource, read:
/home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/general/03-resources//home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/forms//home/mwguerra/projects/mwguerra/claude-code-plugins/filament-specialist/skills/filament-docs/references/tables/Identify:
Use Laravel artisan to create the resource:
# Basic resource
php artisan make:filament-resource ModelName
# With generate flag (creates form/table from model)
php artisan make:filament-resource ModelName --generate
# Soft deletes support
php artisan make:filament-resource ModelName --soft-deletes
# View page only
php artisan make:filament-resource ModelName --view
# Simple resource (modal forms instead of pages)
php artisan make:filament-resource ModelName --simple
Read form field documentation and implement:
use Filament\Forms;
use Filament\Forms\Form;
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Section::make('Basic Information')
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\Textarea::make('description')
->rows(3)
->columnSpanFull(),
]),
Forms\Components\Section::make('Settings')
->schema([
Forms\Components\Toggle::make('is_active')
->default(true),
Forms\Components\Select::make('status')
->options([
'draft' => 'Draft',
'published' => 'Published',
]),
]),
]);
}
Read table documentation and implement:
use Filament\Tables;
use Filament\Tables\Table;
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable()
->sortable(),
Tables\Columns\IconColumn::make('is_active')
->boolean(),
Tables\Columns\BadgeColumn::make('status')
->colors([
'warning' => 'draft',
'success' => 'published',
]),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
Tables\Filters\SelectFilter::make('status')
->options([
'draft' => 'Draft',
'published' => 'Published',
]),
Tables\Filters\TernaryFilter::make('is_active'),
])
->actions([
Tables\Actions\ViewAction::make(),
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
For relationships, create relation managers:
php artisan make:filament-relation-manager ResourceName RelationName column_name
Register in resource:
public static function getRelations(): array
{
return [
RelationManagers\CommentsRelationManager::class,
RelationManagers\TagsRelationManager::class,
];
}
Define resource pages:
public static function getPages(): array
{
return [
'index' => Pages\ListModels::route('/'),
'create' => Pages\CreateModel::route('/create'),
'view' => Pages\ViewModel::route('/{record}'),
'edit' => Pages\EditModel::route('/{record}/edit'),
];
}
Implement policy methods:
public static function canViewAny(): bool
{
return auth()->user()->can('view_any_model');
}
public static function canCreate(): bool
{
return auth()->user()->can('create_model');
}
TextInput::make() - Single line textTextarea::make() - Multi-line textRichEditor::make() - WYSIWYG editorMarkdownEditor::make() - Markdown editorSelect::make() - Dropdown selectRadio::make() - Radio buttonsCheckbox::make() - Single checkboxCheckboxList::make() - Multiple checkboxesToggle::make() - Toggle switchDatePicker::make() - Date onlyDateTimePicker::make() - Date and timeTimePicker::make() - Time onlyFileUpload::make() - File uploadSpatieMediaLibraryFileUpload::make() - Media librarySelect::make()->relationship() - BelongsTo selectCheckboxList::make()->relationship() - BelongsToManyRepeater::make()->relationship() - HasMany inlineSection::make() - Card sectionFieldset::make() - Fieldset groupingTabs::make() - Tabbed sectionsGrid::make() - Grid layoutSplit::make() - Split layoutTextColumn::make() - Basic textIconColumn::make() - Boolean iconImageColumn::make() - Image thumbnailBadgeColumn::make() - Badge stylingColorColumn::make() - Color swatch->searchable() - Enable search->sortable() - Enable sort->toggleable() - Can hide/show->wrap() - Wrap text->limit() - Truncate textFor each resource, generate:
app/Filament/Resources/ModelResource.phpapp/Filament/Resources/ModelResource/Pages/app/Filament/Resources/ModelResource/RelationManagers/tests/Feature/Filament/ModelResourceTest.phpWeekly Installs
1.2K
Repository
GitHub Stars
23
First Seen
Feb 7, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex996
opencode995
gemini-cli993
github-copilot991
kimi-cli988
amp987
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
102,200 周安装