Languages

Version

Theme

介绍

安装

Filament 需要满足以下条件:

  • PHP 8.2+
  • Laravel v11.28+
  • Tailwind CSS v4.0+

安装有两种方式,取决于你想使用官方的面板构建器还是在你应用的 Blade 视图中使用其组件。

安装面板构建器

由于 Filament v4 仍然处于 Beta 阶段,你需要在安装前将 composer.json 文件中的 minimum-stability 设置为 beta。可以手动修改此文件,或者使用 CLI:

composer config minimum-stability beta

composer.json 文件如下:

{
    "minimum-stability": "beta"
}

在 Laravel 项目目录中运行如下命令安装 Filament 面板构建器:

composer require filament/filament:"^4.0"

php artisan filament:install --panels

NOTE

如果使用 Windows PowerShell 安装 Filament,你需要运行如下命令,因为它会忽视版本约束的 ^ 字符:

composer require filament/filament:"~4.0"

php artisan filament:install --panels

这将会新建并注册一个新的 Laravel 服务提供者 - app/Providers/Filament/AdminPanelProvider.php

TIP

如果你在访问面板时出现错误,请检查该服务提供者是否已注册在 bootstrap/providers.php 文件中。如果没有注册,你需要手动添加它

你可以使用如下命令创建一个新的用户账号:

php artisan make:filament-user

在浏览器中打开 /admin,登录,并开始构建你的应用!

安装独立组件

由于 Filament v4 仍然处于 Beta 阶段,你需要在安装前将 composer.json 文件中的 minimum-stability 设置为 beta。可以手动修改此文件,或者使用 CLI

composer config minimum-stability beta

composer.json 如下:

{
    "minimum-stability": "beta"
}

使用 Composer 安装你想要使用的 Filament 组件

composer require
    filament/tables:"^4.0"
    filament/schemas:"^4.0"
    filament/forms:"^4.0"
    filament/infolists:"^4.0"
    filament/actions:"^4.0"
    filament/notifications:"^4.0"
    filament/widgets:"^4.0"

你可以稍后在项目中安装其他 Filament 组件时,不需要重复这些安装步骤。

NOTE

如果使用 Windows PowerShell 安装 Filament,你需要运行如下命令,因为它会忽视版本约束的 ^ 字符:

composer require
    filament/tables:"~4.0"
    filament/schemas:"~4.0"
    filament/forms:"~4.0"
    filament/infolists:"~4.0"
    filament/actions:"~4.0"
    filament/notifications:"~4.0"
    filament/widgets:"~4.0"

如果你只想要使用 Blade UI 组件套件,你需要在此阶段安装 filament/support

要在新的 Laravel 项目中安装 Filament,请运行如下命令来安装 LivewireAlpine.jsTailwind CSS

NOTE

这些命令将会在你的项目中覆盖已存在的文件。请不要在已有的项目中运行此命令!

运行如下命令安装 Filament 前端资源:

php artisan filament:install --scaffold

npm install

npm run dev

在搭建框架时,如果你已经安装 Notifications 包,Filament 会问你是否想安装所需的 Livewire 组件到你的默认布局文件中。如果你希望通过 Filament 给用户发送闪屏消息,就需要这个组件。

运行如下命令安装 Filament 前端资源:

php artisan filament:install

安装 Tailwind CSS

如果你未安装如下这些组件,请运行如下命令安装 Tailwind CSS 和其 Vite 插件:

npm install tailwindcss @tailwindcss/vite --save-dev

配置样式

要配置 Filament 的样式,你需要导入 Filament 包的 CSS 文件,通常在 resources/css/app.css 中。

屈居于你安装的是哪些包,你可以只导入必要的 CSS 文件,以保持你应用的 CSS bunlde size 较小。

@import 'tailwindcss';

/* Required by all components */
@import '../../vendor/filament/support/resources/css/index.css';

/* Required by actions and tables */
@import '../../vendor/filament/actions/resources/css/index.css';

/* Required by actions, forms and tables */
@import '../../vendor/filament/forms/resources/css/index.css';

/* Required by actions and infolists */
@import '../../vendor/filament/infolists/resources/css/index.css';

/* Required by notifications */
@import '../../vendor/filament/notifications/resources/css/index.css';

/* Required by actions, infolists, forms, schemas and tables */
@import '../../vendor/filament/schemas/resources/css/index.css';

/* Required by tables */
@import '../../vendor/filament/tables/resources/css/index.css';

/* Required by widgets */
@import '../../vendor/filament/widgets/resources/css/index.css';

@variant dark (&:where(.dark, .dark *));

配置 Vite 插件

如果还没有安装该插件,请将 @tailwindcss/vite 插件添加到你的 Vite 配置中 (vite.config.js):

import { defineConfig } from 'vite'
import laravel from 'laravel-vite-plugin'
import tailwindcss from '@tailwindcss/vite'

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
        tailwindcss(),
    ],
})

编译资源

使用 npm run dev 编译新的 CSS 和 JavaScript 资源:

配置你的布局

如果你还没有 Blade 布局文件,请运行以下命令在 resources/views/components/layouts/app.blade.php 中创建它:

php artisan livewire:layout

添加如下代码到新的布局文件中:

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">

        <meta name="application-name" content="{{ config('app.name') }}">
        <meta name="csrf-token" content="{{ csrf_token() }}">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>{{ config('app.name') }}</title>

        <style>
            [x-cloak] {
                display: none !important;
            }
        </style>

        @filamentStyles
        @vite('resources/css/app.css')
    </head>

    <body class="antialiased">
        {{ $slot }}

        @livewire('notifications') {{-- Only required if you wish to send flash notifications --}}

        @filamentScripts
        @vite('resources/js/app.js')
    </body>
</html>

其中重要的部分是布局的 <head> 中的 @filamentStyles<body> 结尾处中的 @filamentScripts。请务必引入 Vite 编译后的 CSS 和 JavaScript 文件!

NOTE

@livewire('notifications') 这一行只有在你安装了 Notifications 包并且想通过 Filament 发送 Flash 通知给用户时才需要。

Edit on GitHub

Still need help? Join our Discord community or open a GitHub discussion

Previous
Filament 是什么?