tapp/filament-timezone-field

v3.0.6 2024-05-29 20:43 UTC

This package is auto-updated.

Last update: 2024-08-29 21:20:39 UTC


README

Latest Version on Packagist Code Style Action Status Total Downloads

Laravel Filament 的时间区选择字段。

安装

composer require tapp/filament-timezone-field:"^3.0"

注意 对于 Filament 2.x,请查看 2.x 分支

使用方法

表单字段

添加到您的 Filament 资源

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...
            TimezoneSelect::make('timezone'),
            // ...
        ]);
}

外观

Filament Timezone Field

选项

要使用 GMT 而不是 UTC(默认为 UTC),请添加 ->timezoneType('GMT') 方法

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...
            TimezoneSelect::make('timezone')
                ->timezoneType('GMT'),
            // ...
        ]);
}
按国家列出时区

要仅列出某个国家的时区,可以将国家代码传递给 ->byCountry() 方法。例如,要列出仅限美国的时区

TimezoneSelect::make('timezone')
    ->byCountry('US')

您也可以传递包含多个国家代码的数组

TimezoneSelect::make('timezone')
    ->byCountry(['US', 'AU'])
按区域列出时区

要列出某个区域的时区,请使用 ->byRegion() 方法。您可以使用 Region 枚举值

use Tapp\FilamentTimezoneField\Enums\Region;

TimezoneSelect::make('timezone')
    ->byRegion(Region::Australia)

或者可以使用 PHP 的 DateTimeZone 预定义常量

use DateTimeZone;

TimezoneSelect::make('timezone')
    ->byRegion(DateTimeZone::AUSTRALIA)

也可以传递包含多个区域的数组

use Tapp\FilamentTimezoneField\Enums\Region;

TimezoneSelect::make('timezone')
    ->byRegion([Region::Australia, Region::America])

提示

所有 Filament 选择字段 方法都可以使用

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;

public static function form(Form $form): Form
{
   return $form
       ->schema([
           // ...
           TimezoneSelect::make('timezone')
               ->searchable()
               ->required(),
           // ...
       ]);
}

根据需要,可以隐藏时区偏移量或时区名称

Filament Timezone Display Options

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...
            TimezoneSelect::make('timezone')
                ->hideNames(),
            // ...
        ]);
}
use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...
            TimezoneSelect::make('timezone')
                ->hideOffset(),
            // ...
        ]);
}

表格列

use Tapp\FilamentTimezoneField\Tables\Columns\TimezoneColumn;

public static function table(Table $table): Table
{
    return $table
        ->columns([
            //...
            TimezoneColumn::make('timezone')
                ->timezoneType('GMT')
                ->formattedOffsetAndTimezone(),
        ])
        // ...
}

选项

表格过滤器

use Tapp\FilamentTimezoneField\Tables\Filters\TimezoneSelectFilter;

public static function table(Table $table): Table
{
    return $table
        //...
        ->filters([
            TimezoneSelectFilter::make('timezone'),
            // ...
        ])
}