webbingbrasil / filament-jetstream-theme
受 Laravel Jetstream 启发的 Filament 主题。
v1.5.3
2023-04-11 12:55 UTC
Requires
- php: ^8.0
- filament/filament: ^2.16
- spatie/laravel-package-tools: ^1.9.2
README
filament 管理员的主题
安装
composer require webbingbrasil/filament-jetstream-theme
可选地,您可以使用以下命令发布配置文件:
php artisan vendor:publish --tag="filament-jetstream-config"
可选地,您可以使用以下命令发布视图:
php artisan vendor:publish --tag="filament-jetstream-views"
密码规则
此主题提供了一个密码规则类,您可以在任何表单验证中使用它。
use Webbingbrasil\FilamentJetstreamTheme\Rules\Password; Forms\Components\TextInput::make('new_password') ->label(__('filament-jetstream::default.fields.new_password')) ->password() ->rules(Password::make() ->requireNumeric() ->requireUppercase() ->requireSpecialCharacter() ->length(8))
默认情况下,我们提供了一个配置属性,其中包含预定义的密码规则: config('filament-jetstream.password_rules')
,此规则用于个人资料页面,用于自定义发布和更新配置文件。
个人资料页面
此主题提供了一个包含用户信息和密码更新表单的基本个人资料页面,它默认已注册,但您可以使用两种方法扩展和自定义页面。
使用渲染钩子
利用 Filament 的渲染钩子向个人资料页面注册额外内容。
## in Service Provider file public function boot() { Filament::registerRenderHook( 'filament-jetstream.profile-page.start', fn (): string => Blade::render('@livewire(\'profile-instructions\')'), ); Filament::registerRenderHook( 'filament-jetstream.profile-page.after-profile-form', fn (): string => Blade::render('@livewire(\'extra-forms\')'), ); Filament::registerRenderHook( 'filament-jetstream.profile-page.end', fn (): string => Blade::render('@livewire(\'filament-two-factor-form\')'), ); }
扩展个人资料页面类
另一种自定义个人资料页面的方法是扩展页面类。
namespace App\Filament\Pages; use Webbingbrasil\FilamentJetstreamTheme\Pages\Profile as BaseProfile; use Filament\Forms; class Profile extends BaseProfile { protected function getProfileFormSchema(): array { return array_merge(parent::getProfileFormSchema(), [ Forms\Components\TextInput::make("job_title"), Forms\Components\Checkbox::make("marketing_consent")->label( "I consent to receive email notifications....." ), ]); }
创建您自定义页面后,发布主题配置并更新 profile_page_class
属性
用户管理账户菜单
要向用户菜单注册新项目,您应使用服务提供者。
use Filament\Facades\Filament; use Filament\Navigation\UserMenuItem; Filament::serving(function () { Filament::registerUserMenuItems([ UserMenuItem::make() ->label('Settings') ->url(route('filament.pages.settings')) ->icon('heroicon-s-cog'), // ... ]); });
组件
您可以使用额外的组件来设计自定义页面: <x-filament-jetstream::grid-section>
使用示例
<x-filament-jetstream::grid-section>
<x-slot name="title">
title
</x-slot>
<x-slot name="description">
description
</x-slot>
<x-filament::form wire:submit.prevent="create">
<x-filament::card>
{{ $this->form }}
<x-slot name="footer">
<x-filament::form.actions :actions="$this->getFormActions()" />
</x-slot>
</x-filament::card>
</x-filament::form>
</x-filament-jetstream::grid-section>
截图
致谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件。