通知生成器
安装
安装
运行 Filament 有一些特定的要求:
- PHP 8.0+
- Laravel v8.0+
- Livewire v2.0+
通知生成器已经在后台面板 2.x中预装了。不过如果你要在其他应用中使用,你还是需要按照以下安装指示操作。
首先, 使用 Composer 安装通知包:
composer require filament/notifications:"^2.0"
新的 Laravel 项目
要快速使用通知生成器,你可以使用这些命令安装 Livewire,Alpine.js、TailwindCSS 和 Livewire:
php artisan notifications:installnpm installnpm run dev
这些命令会粗暴地重写覆盖你现有的文件,因此我们只推荐在新项目中使用这种方法。
现在你可以开始发送通知了!
现有 Laravel 项目
此包使用以下依赖:
可以通过 NPM 进行安装:
npm install alpinejs @awcodes/alpine-floating-ui postcss tailwindcss --save-dev
配置 Tailwind CSS
要完成Tailwind安装,你必须在项目的根目录中创建 tailwind.config.js
文件。最简单的做法是运行 npx tailwindcss init
命令。
在 tailwind.config.js
中,注册你安装好的插件,然后添加通知生成器要使用的自定义颜色:
import colors from 'tailwindcss/colors' export default { content: [ './resources/**/*.blade.php', './vendor/filament/**/*.blade.php', ], theme: { extend: { colors: { danger: colors.rose, primary: colors.blue, success: colors.green, warning: colors.yellow, }, }, },}
当然,你也可以指定你自己定义的 primary
、success
、warning
及 danger
颜色,这会替换掉原有的颜色。
打包资源
新的 Laravel 项目默认使用 Vite 打包资源。不过,你仍然可以使用 Laravel Mix。
Vite
如果你使用的是 Vite,你应该通过NPM手动安装 Autoprefixer:
npm install autoprefixer --save-dev
在项目的根目录中新建 postcss.config.js
文件,以插件形式注册 Tailwind CSS 和 Autoprefixer:
export default { plugins: { tailwindcss: {}, autoprefixer: {}, },}
你也可以更新 vite.config.js
,使页面在 Livewire 组件或自定义表格字段更新后自动刷新:
import { defineConfig } from 'vite';import laravel, { refreshPaths } from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: [ 'resources/css/app.css', 'resources/js/app.js', ], refresh: [ ...refreshPaths, 'app/Http/Livewire/**', ], }), ],});
Laravel Mix
在 webpack.mix.js
文件中,以 PostCSS 插件的形式注册 Tailwind CSS:
const mix = require('laravel-mix') mix.js('resources/js/app.js', 'public/js') .postCss('resources/css/app.css', 'public/css', [ require('tailwindcss'), ])
配置样式
在 /resources/css/app.css
文件中,引入 TailwindCSS:
@tailwind base;@tailwind components;@tailwind utilities;
配置脚本
在 /resources/js/app.js
文件中,导入 Alpine.js、filament/notifications
插件并注册:
import Alpine from 'alpinejs'import AlpineFloatingUI from '@awcodes/alpine-floating-ui'import NotificationsAlpinePlugin from '../../vendor/filament/notifications/dist/module.esm' Alpine.plugin(AlpineFloatingUI)Alpine.plugin(NotificationsAlpinePlugin) window.Alpine = Alpine Alpine.start()
编译资源
使用 npm run dev
命令编译新的 CSS 和 JS 资源:
配置布局
最后,为 Livewire 组件新建 resources/views/layouts/app.blade.php
布局文件:
<!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> @vite(['resources/css/app.css', 'resources/js/app.js']) @livewireStyles @livewireScripts @stack('scripts') </head> <body class="antialiased"> {{ $slot }} @livewire('notifications') </body></html>
现在你可以发送通知了!
发布配置文件
如有需要时,你可以使用这个命令发布此扩展包的配置文件:
php artisan vendor:publish --tag=notifications-config
升级
要将该软件包升级到最新版本,你必须运行:
composer updatephp artisan filament:upgrade
我们推荐将 filament:upgrade
添加到 composer.json
文件的 post-update-cmd
中,使之自动运行:
"post-update-cmd": [ // ... "@php artisan filament:upgrade"],
Edit on GitHubStill need help? Join our Discord community or open a GitHub discussion