Checkbox
Introducción
El componente checkbox, similar a un toggle, te permite interactuar con un valor booleano.
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_admin')
Si estás guardando el valor booleano usando Eloquent, debes asegurarte de agregar un boolean cast a la propiedad del modelo:
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* @return array<string, string>
*/
protected function casts(): array
{
return [
'is_admin' => 'boolean',
];
}
// ...
}
Posicionar la etiqueta arriba
Los campos checkbox tienen dos modos de diseño, en línea (inline) y apilado (stacked). Por defecto, son en línea.
Cuando el checkbox está en línea, su etiqueta está adyacente a él:
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_admin')
->inline()
Cuando el checkbox está apilado, su etiqueta está arriba:
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_admin')
->inline(false)
Inyección de utilidades
Además de permitir un valor estático, el método inline() también acepta una función para calcularlo dinámicamente. Puedes inyectar varias utilidades en la función como parámetros.
Validación del checkbox
Además de todas las reglas listadas en la página de validación, existen reglas adicionales que son específicas para checkboxes.
Validación "accepted"
Puedes asegurarte de que el checkbox esté marcado usando el método accepted():
use Filament\Forms\Components\Checkbox;
Checkbox::make('terms_of_service')
->accepted()
Opcionalmente, puedes pasar un valor booleano para controlar si la regla de validación debe aplicarse o no:
use Filament\Forms\Components\Checkbox;
Checkbox::make('terms_of_service')
->accepted(FeatureFlag::active())
Inyección de utilidades
Además de permitir un valor estático, el método accepted() también acepta una función para calcularlo dinámicamente. Puedes inyectar varias utilidades en la función como parámetros.
Validación "declined"
Puedes asegurarte de que el checkbox no esté marcado usando el método declined():
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_under_18')
->declined()
Opcionalmente, puedes pasar un valor booleano para controlar si la regla de validación debe aplicarse o no:
use Filament\Forms\Components\Checkbox;
Checkbox::make('is_under_18')
->declined(FeatureFlag::active())
Inyección de utilidades
Además de permitir un valor estático, el método declined() también acepta una función para calcularlo dinámicamente. Puedes inyectar varias utilidades en la función como parámetros.