开始

Pages

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');
}

需要帮助? 加入论坛 或者打开 GitHub讨论

喜欢Filament?

Filament 中文文档由 laravel-filament.cn 翻译整理。站长用爱发电,希望为英文阅读不畅的朋友提供快速掌握Filament框架的途径。文档的翻译,社区的运营维护都需要时间精力上的付出。如果文档社区使你受益,如果你想支持站长...

打赏