tapp / filament-timezone-field
Filament 时区字段。
v3.0.6
2024-05-29 20:43 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0-stable
README
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'), // ... ]); }
外观
选项
要使用 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(), // ... ]); }
根据需要,可以隐藏时区偏移量或时区名称
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'), // ... ]) }