表格 - Column

Toggle column

简介

简介

Toggle 列允许你在表格中渲染 Toggle 按钮,可用于在不打开新页面或模态框的情况下更新数据库记录:

use Filament\Tables\Columns\ToggleColumn;

ToggleColumn::make('is_admin')
Toggle column

生命周期钩子

钩子可用于在 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 的资源授权机制会生效。

Edit on GitHub

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

Previous
Select column