后台面板 - 页面
开始
Filament 允许你为后台面板创建完全自定义的页面。
创建页面
要创建新页面,你可以:
php artisan make:filament-page Settings
该命令会生成两个文件 - 一个位于 Filament 目录的 /Pages
文件夹中的页面类,以及一个位于 Filament 视图目录的 /pages
文件夹中的视图文件。
页面类是全页 Livewire 组件,带有一些你可以在后台面板中使用的额外功能。
在导航中条件性隐藏页面
你可以通过重写页面类的 shouldRegisterNavigation()
方法来隐藏菜单。这对于控制哪些用户可以在侧边栏中查看页面非常有用。
protected static function shouldRegisterNavigation(): bool{ return auth()->user()->canManageSettings();}
请注意,此时所有用户仍然可以直接通过 URL 访问该页面,因此你必须同时检查页面的 mount()
方法进行全面限制:
public function mount(): void{ abort_unless(auth()->user()->canManageSettings(), 403);}
自定义
Filament 会基于页面名称自动生成标签、导航标签和 URL(Slug)。你可以使用页面类的静态属性重写:
protected static ?string $title = 'Custom Page Title'; protected static ?string $navigationLabel = 'Custom Navigation Label'; protected static ?string $slug = 'custom-url-slug';
你也可以为任何页面指定自定义页头(header)和页尾(footer)。在 getHeader()
和 getFooter()
方法中返回:
use Illuminate\Contracts\View\View; protected function getHeader(): View{ return view('filament.settings.custom-header');} protected function getFooter(): View{ return view('filament.settings.custom-footer');}
Edit on GitHubStill need help? Join our Discord community or open a GitHub discussion