表格 - Column

Checkbox column

简介

复选框列字段(CheckboxColumn)允许你在表格中渲染复选框,可用于在不打开新页面或模态框的情况下更新数据库记录:

use Filament\Tables\Columns\CheckboxColumn;

CheckboxColumn::make('is_admin')
Checkbox column

生命周期钩子

钩子可用于在 Checkbox 生命周期的各个节点中执行代码:

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 模型策略。当用户通过复选框列更新值时,Filament 仅会检查该列是否处于 disabled()(禁用)状态,而不会执行任何 update 策略检查。这意味着,只要用户能在表格中看到某条记录且该列未被禁用,他们就能更新该列的值,而无论你定义了何种 update 策略。如果你需要限制谁能编辑此列,应使用 disabled() 方法,根据自定义的授权逻辑有条件地禁止编辑,例如:disabled(fn ($record) => $record->user_id !== auth()->id())。或者,也可以考虑使用完整的编辑页面或模态框操作,因为这些方式会强制执行 Filament 的资源授权机制。

Edit on GitHub

Still need help? Join our Discord community or open a GitHub discussion

Previous
Text input column