表格 - Column
Toggle column
简介
简介
Toggle 列允许你在表格中渲染 Toggle 按钮,可用于在不打开新页面或模态框的情况下更新数据库记录:
use Filament\Tables\Columns\ToggleColumn;
ToggleColumn::make('is_admin')
生命周期钩子
钩子可用于在 Toggle 生命周期的各个节点中执行代码:
ToggleColumn::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.
})
安全性
授权
在保存更改之前,Toggle 列不会自动检查 Laravel 模型策略。当用户通过切换列更新值时,Filament 会检查该列是否处于 disabled() 状态,但不会执行任何 update 策略检查。这意味着,只要用户能在表格中看到某条记录且该列未被禁用,他们就能更新该列的值,而无论你定义了何种 update 策略。如果你需要限制谁可以编辑此列,应使用 disabled() 方法,根据自定义的授权逻辑有条件地禁止编辑,例如:disabled(fn ($record) => $record->user_id !== auth()->id())。或者,也可以考虑使用完整的编辑页面或模态框操作,在这些场景下 Filament 的资源授权机制会生效。
Still need help? Join our Discord community or open a GitHub discussion