后台面板 - 资源
查看记录
创建带有查看页的资源
要想创建一个带有查看页面的新资源,你可以使用 --view
标志:
php artisan make:filament-resource User --view
在现有资源上添加查看页
如果你要添加查看页面到现有的资源上,可以使用如下命令在你的资源 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->actions()
数组中:
use Filament\Resources\Table;use Filament\Tables; public static function table(Table $table): Table{ return $table ->columns([ // ... ]) ->actions([ Tables\Actions\ViewAction::make(), // ... ]);}
填充表单前自定义数据
你可能想要在记录填充到表单前修改数据。你可以通过定义 mutateFormDataBeforeFill()
方法去修改 $data
数组,在填充到表单前返回修改后的版本:
protected function mutateFormDataBeforeFill(array $data): array{ $data['user_id'] = auth()->id(); return $data;}
此外,如果你想在模态框操作中查看记录:
use Filament\Tables\Actions\ViewAction; ViewAction::make() ->mutateRecordDataUsing(function (array $data): array { $data['user_id'] = auth()->id(); return $data; })
授权
关于授权,Filament 会监听所有应用中注册的模型策略。
如果模型策略的 view()
方法中返回的是 true()
,用户可以访问查看页。
自定义视图
要进一步自定义,你可以覆盖页面类的静态 $view
属性:
protected static string $view = 'filament.resources.users.pages.view-user';
Edit on GitHubStill need help? Join our Discord community or open a GitHub discussion