Skip to content
全部文档

复选框

简介

复选框组件与 开关 类似,可让你与布尔值交互。

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() 方法也接受函数以动态计算。你可以将各种工具作为参数注入到该函数中。