outerweb / filament-settings
此包为Filament中的outerweb/settings交互提供了一种方式。
v1.2.0
2024-03-25 15:53 UTC
Requires
- php: ^8.0
- filament/filament: ^3.2
- laravel/framework: ^10.0|^11.0
- outerweb/settings: ^1.0
- spatie/laravel-package-tools: ^1.16
README
此包为Filament中的outerweb/settings交互提供了一种方式。
安装
您可以通过composer安装此包
composer require outerweb/filament-settings
如Settings文档中所述配置Outerweb/Settings包。
将插件添加到您希望使用的Filament面板中
use Outerweb\FilamentSettings\Filament\Plugins\FilamentSettingsPlugin; class FilamentPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ FilamentSettingsPlugin::make() ->pages([ // Add your own setting pages here ]) ]); } }
用法
在'app/Filament/Pages/Settings/Settings.php'创建设置页面
namespace App\Filament\Pages\Settings; use Closure; use Filament\Forms\Components\Tabs; use Filament\Forms\Components\TextInput; use Outerweb\FilamentSettings\Filament\Pages\Settings as BaseSettings; class Settings extends BaseSettings { public function schema(): array|Closure { return [ Tabs::make('Settings') ->schema([ Tabs\Tab::make('General') ->schema([ TextInput::make('general.brand_name') ->required(), ]), Tabs\Tab::make('Seo') ->schema([ TextInput::make('seo.title') ->required(), TextInput::make('seo.description') ->required(), ]), ]), ]; } }
在FilamentServiceProvider中注册设置页面
use Outerweb\FilamentSettings\Filament\Plugins\FilamentSettingsPlugin; class FilamentPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ FilamentSettingsPlugin::make() ->pages([ App\Filament\Pages\Settings\Settings::class, ]) ]); } }
您可以添加任意多的设置页面。但请注意,在添加时,确保在设置页面中重写public static function getNavigationLabel() : string
方法。这是因为具有相同导航标签的多个页面将在Filament导航中相互覆盖。
更改导航标签
您可以通过重写getNavigationLabel
方法来更改导航标签
namespace App\Filament\Pages\Settings; use Outerweb\FilamentSettings\Filament\Pages\Settings as BaseSettings; class Settings extends BaseSettings { public static function getNavigationLabel(): string { return 'Custom label'; } }
更改页面标题
您可以通过重写getTitle
方法来更改页面标题
namespace App\Filament\Pages\Settings; use Outerweb\FilamentSettings\Filament\Pages\Settings as BaseSettings; class Settings extends BaseSettings { public function getTitle(): string { return 'Custom title'; } }
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。