复选框列
简介
复选框列允许你在表格中渲染复选框,用于更新该数据库记录,而无需打开新页面或模态框:
php
use Filament\Tables\Columns\CheckboxColumn;
CheckboxColumn::make('is_admin')

生命周期钩子
可使用钩子在复选框生命周期的各个时刻执行代码:
php
CheckboxColumn::make()
->beforeStateUpdated(function ($record, $state) {
// Runs before the state is saved to the database.
})
->afterStateUpdated(function ($record, $state) {
// Runs after the state is saved to the database.
})安全性
授权
复选框列在保存更改前不会自动检查 Laravel 模型策略(Model Policies)。当用户通过复选框列更新值时,Filament 会检查该列是否 disabled(),但不会运行任何 update 策略门控检查。这意味着,只要用户能在表格中看到某条记录且该列未被禁用,即可更新该列的值,而不受你定义的任何 update 策略约束。若需限制谁可以编辑此列,应使用 disabled() 方法,根据你自己的授权逻辑有条件地阻止编辑,例如 disabled(fn ($record) => $record->user_id !== auth()->id())。或者,考虑使用完整的编辑页面或模态操作,在那里会强制执行 Filament 的资源授权。