outerweb/filament-settings

此包为Filament中的outerweb/settings交互提供了一种方式。

v1.2.0 2024-03-25 15:53 UTC

This package is auto-updated.

Last update: 2024-09-25 16:55:19 UTC


README

Latest Version on Packagist Total Downloads

此包为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)。有关更多信息,请参阅许可证文件