跳到主要内容
版本:3.0

安装

要求

运行 Filament 有一些基础要求:

  • PHP 8.1+
  • Laravel v10.0+
  • Livewire v3.0+

Livewire v3 已于最近发布了!
Livewire 团队为使其稳定方面做得很好,不过这是对 Livewire v2 的完全重写。你可能会碰到问题,因此,我们建议在将 Filament v3 使用到生产环境之前对应用进行全面的测试。

安装

如果你是从 Filament v2 升级,请查看升级向导

安装 Filament 面板构造器,在 Laravl 项目目录下运行如下命令:

composer require filament/filament:"^3.0-stable" -W
php artisan filament:install --panels

这段命令将会创建并注册一个新的 Laravel 服务提供者,叫做 app\Providers\Filament\AdminPanelProvider.

如果访问面板时出错,请检查该服务提供者有没有在 config/app.php 中注册。如果没有,你应该手动将其添加到 providers 数组中。

创建用户

如果还没有用户,你可以使用以下命令创建新用户:

php artisan make:filament-user

访问 /admin 并登录,你现在可以开始创建自己的应用了!

不确定应该从哪里开始?请浏览开始向导,学习如何构建一个完整登录的 Filament 管理后台。

使用其他 Filament 包

Filament 面板构造器包已经预装了表单构造器表格构造器通知生成器Action信息列表及 [Widget] 包。因此在面板中无需再行安装就能使用。

部署到生成环境

默认情况下,所有的 App\Models\User 在本地下都可以访问 Filament。要允许用户在生成环境中访问,你还需要采取一些额外的措施来确保只有授权的用户可以访问该应用。

<?php

namespace App\Models;

use Filament\Models\Contracts\FilamentUser;
use Filament\Panel;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements FilamentUser
{
// ...

public function canAccessPanel(Panel $panel): bool
{
return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail();
}
}

如果你没有完成这些步骤,当你在生产环境中试图访问应用时,会出现 403 错误。

了解更多用户相关信息。

发布配置

你可以使用如下命令发布配置文件:

php artisan vendor:publish --tag=filament-config

发布翻译文件

可以使用如下命令可以发布语言文件供翻译:

php artisan vendor:publish --tag=filament-translations

由于此包依赖于其他 Filament 包,因此你还可以使用如下命令发布语言文件:

php artisan vendor:publish --tag=filament-actions-translations
php artisan vendor:publish --tag=filament-forms-translations
php artisan vendor:publish --tag=filament-notifications-translations
php artisan vendor:publish --tag=filament-tables-translations
php artisan vendor:publish --tag=filament-support-translations

升级

如果你是从 Filament v2 升级,请查看升级向导

当运行 composer update 命令时,Filament 会自动升级到最新的非破坏性版本。升级完成后,应该清除所有 Laravel 缓存,并且重新发布前端资源。你可以使用 filament:upgrade 命令一次性完成这些动作,该命令会第一次运行 filament:install 添加到 composer.json 文件中:

"post-autoload-dump": [
// ...
"@php artisan filament:upgrade"
],

请注意 filament:upgrade 不会真正处理升级过程,因为 Composer 已经做了升级,如果你不使用 post-autoload-dump 钩子手动升级,你可以自己运行该命令:

composer update
php artisan filament:upgrade