在已经能登录的 filament 4 面板里,进入 laravel 项目根目录,运行 php artisan make:filament-resource post --generate,就能基于现有 post 模型和 posts 表生成后台资源。数据库需要可连接且已完成迁移,生成后还要核对表单、列表和 postpolicy。
用 Post 模型生成后台资源
在 Laravel 项目根目录执行下面的命令。--generate 会根据数据库表结构尝试生成表单和表格配置,因此运行前先确认应用能连接数据库,posts 表也已迁移。
php artisan make:filament-resource Post --generate
根据命令输出定位生成的 Resource 和页面文件。项目有多个面板时,核对目标面板是否发现了该 Resource,再登录对应面板查看菜单。
生成后要检查哪些表单和列表配置
沿着 Resource 的 form() 和 table() 查看实际配置。Filament 4 的生成结构可把表单和表格拆到独立类。确认标题、正文、状态字段对应的输入组件符合业务需求。

调整列表显示的列。为标题等必填字段显式配置 required(),并按数据库列长度补充校验规则。$fillable 控制模型批量赋值,需要另外检查。
给文章标题、正文和状态配置表单校验
在 Filament 4 生成的表单配置类中调整字段。以下片段假定 posts 表已有 title、body 和 status 列。若表单配置直接在 Resource 中,则把相同组件放进 Resource 的 form()。
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
public static function configure(Schema $schema): Schema
{
return $schema->components([
TextInput::make('title')->required()->maxLength(200),
Textarea::make('body')->required()->rows(8),
Select::make('status')
->options(['draft' => '草稿', 'published' => '发布'])
->default('draft')
->required(),
]);
}
将 use 行放在文件顶部,方法放在生成的配置类内。确认模型允许写入这三个字段。若允许普通编辑人员使用该资源,应在服务端控制谁能将状态改成 published。
用标题搜索文章并按更新时间排序
在生成的表格配置方法中更新 columns 部分,保留生成器已有的行操作和批量操作配置。下列字段假设模型启用了时间戳。
use Filament\Tables\Columns\TextColumn;
// 在生成的方法中,沿用已有的 $table。
$table
->columns([
TextColumn::make('title')->searchable()->sortable(),
TextColumn::make('status')->badge(),
TextColumn::make('updated_at')->dateTime()->sortable(),
])
->defaultSort('updated_at', 'desc');
用标题「秋季发布计划」新增一条草稿,返回列表用「秋季」搜索,再更新正文并检查列表时间。用无权限账号访问同一资源,核对实际结果与 PostPolicy 的规则。
菜单不显示或账号无法访问时查哪里
登录目标面板,确认侧边栏出现文章资源。用一条测试记录验证创建和更新,并检查 PostPolicy 的 viewAny、create、update 是否与角色要求一致。若保留删除功能,也要核对 delete 和 deleteAny 的策略。
用管理员和受限账号分别打开列表地址和编辑地址,核对页面权限是否符合 PostPolicy。若资源连菜单都没有,先确认目标面板发现了 Resource,再检查 viewAny 权限。










