复选框
简介
复选框组件与 开关 类似,可让你与布尔值交互。
php
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_admin')

若使用 Eloquent 保存布尔值,请务必为模型属性添加 boolean 类型转换(cast):
php
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* @return array<string, string>
*/
protected function casts(): array
{
return [
'is_admin' => 'boolean',
];
}
// ...
}将标签置于上方
复选框字段有两种布局模式:行内(inline)与堆叠(stacked)。默认为行内。
复选框为行内时,标签与其相邻:
php
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_admin')
->inline()

复选框为堆叠时,标签位于其上方:
php
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_admin')
->inline(false)TIP
除了允许静态值外,inline() 方法也接受函数以动态计算。你可以将各种工具作为参数注入到该函数中。


复选框校验
除 校验 页面列出的全部规则外,还有专门适用于复选框的额外规则。
接受校验
你可以使用 accepted() 方法确保复选框已被勾选:
php
use Filament\Forms\Components\Checkbox;
Checkbox::make('terms_of_service')
->accepted()可选地,你可以传入布尔值来控制是否应用该校验规则:
php
use Filament\Forms\Components\Checkbox;
Checkbox::make('terms_of_service')
->accepted(FeatureFlag::active())TIP
除了允许静态值外,accepted() 方法也接受函数以动态计算。你可以将各种工具作为参数注入到该函数中。
拒绝校验
你可以使用 declined() 方法确保复选框未被勾选:
php
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_under_18')
->declined()可选地,你可以传入布尔值来控制是否应用该校验规则:
php
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_under_18')
->declined(FeatureFlag::active())TIP
除了允许静态值外,declined() 方法也接受函数以动态计算。你可以将各种工具作为参数注入到该函数中。