查看记录
创建带有查看页面的资源
要创建带有查看页面的新资源,你可以使用 --view
标志:
php artisan make:filament-resource User --view
使用信息列表代替禁用表单
默认情况下,查看页面将显示一个包含记录数据的被禁用的表单。如果你希望在“信息列表”中显示记录数据,你可以在资源类中定义一个 infolist()
方法:
use Filament\Infolists;
use Filament\Schemas\Schema;
public static function infolist(Schema $schema): Schema
{
return $schema
->components([
Infolists\Components\TextEntry::make('name'),
Infolists\Components\TextEntry::make('email'),
Infolists\Components\TextEntry::make('notes')
->columnSpanFull(),
]);
}
components()
方法用于定义信息列表的结构。它是一个由 条目(Entry) 和 布局组件 组成的数组,这些条目和组件按照它们在信息列表中的显示顺序排列。
查看信息列表文档,了解如何使用 Filament 构建信息列表的 指南。
向现有资源添加查看页面
如果你想向现有资源添加查看页面,请在资源的 Pages
目录中创建一个新页面:
php artisan make:filament-page ViewUser --resource=UserResource --type=ViewRecord
你必须在资源的 getPages()
方法中注册这个新页面:
public static function getPages(): array
{
return [
'index' => Pages\ListUsers::route('/'),
'create' => Pages\CreateUser::route('/create'),
'view' => Pages\ViewUser::route('/{record}'),
'edit' => Pages\EditUser::route('/{record}/edit'),
];
}
在模态框中查看记录
如果你的资源比较简单,你可能希望在模态框中查看记录,而不是在查看页面中查看。在这种情况下,你可以直接删除查看页面。
如果你的资源不包含 ViewAction
,你可以将其添加到 $table->recordActions()
数组中:
use Filament\Actions\ViewAction;
use Filament\Tables\Table;
public static function table(Table $table): Table
{
return $table
->columns([
// ...
])
->recordActions([
ViewAction::make(),
// ...
]);
}
填入表单前自定义数据
你可能希望在记录填入到表单之前修改数据。为此,你可以在查看页面类中定义一个 mutateFormDataBeforeFill()
方法来修改 $data
数组,并在填写到表单之前返回修改后的版本:
protected function mutateFormDataBeforeFill(array $data): array
{
$data['user_id'] = auth()->id();
return $data;
}
或者,如果你在模态操作中查看记录,请查看 Actions 文档。