跳到主要内容
版本:3.0

配置

概述

默认情况下,配置文件位于 app/Providers/Filament/AdminPanelProvider.php。继续阅读了解更多面板信息以及每个面板如何拥有自己的配置文件

面板介绍

默认情况下,当你安装完该包后,已经为你设置好了一个面板,它位于 /admin。你所创建的所有资源页面仪表盘 Widget 都注册到此面板中。

不过,你可以根据需要创建尽可能多的面板,每个都有一套它自己的资源、页面以及 Widget。

比如,你创建了一个面板,用户可以通过 /app 登录并访问它们的仪表盘,管理员可以通过 /admin 登录并管理应用。/app 面板及 /admin 面板都有它们自己的资源,因为每个用户组有不同的需求。Filament 通过提供创建多个面板的能力来允许你实现该功能。

默认的管理面板

当你运行 filament:install 后,在 app/Providers/Filament 下面新建了一个文件 —— AdminPanelProvider。该文件包含了 /admin 面板的配置文件。

此文档提及“配置”时,这就是你需要去编辑的那个文件。它允许你完全自定义应用。

创建新面板

要创建新面板,请使用 make:filament-panel 命令,传入新面板的唯一名称:

php artisan make:filament-panel app

该命令会创建一个名为"app"的新面板。同时生成一个新配置文件 app/Providers/Filament/AppPanelProvider.php。你可以在 /app 中访问该面板,不过如果你不想要该路径你也可以自定义路径

由于配置文件也是一个 Laravel 服务提供者,它需要在 config/app.php 中注册。Filament 会尝试为你完成此操作,不过如果你访问该面板时返回错误,那么可能是该操作失败。你可以将其添加到 providers 数组手动注册服务提供者。

修改路径

在面板配置文件中,你可以使用 path() 方法,修改该应用可访问的路径:

use Filament\Panel;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->path('app');
}

如果你想不使用前缀访问该应用,你可以将其设为空字符串:

use Filament\Panel;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->path('');
}

渲染钩子

Filament 允许你在应用布局中的不同点渲染 Blade 模板内容。这对于集成像 wire-elements/modal 这样的包非常有用,该包需要添加 Livewire 组件到你的应用中。下例中,使用 Filament 集成了 wire-elements/modal

use Filament\Panel;
use Illuminate\Support\Facades\Blade;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->renderHook(
'panels::body.start',
fn (): string => Blade::render('@livewire(\'livewire-ui-modal\')'),
);
}

渲染钩子的全列表清单,请查阅此处.

设置域名

默认情况下,Filament 会对所有域名的请求进行响应。如果你想将其限制到特定域名,你可用使用 domain() 方法,它类似于 Laravel 中的 Route::domain()

use Filament\Panel;

public function panel(Panel $panel): Panel
{
return $panel
// ...
->domain('admin.example.com');
}