高级列
表格列 utility 注入
大部分用于配置的方法接受函数作为参数,而不只是硬编码值:
use Filament\Tables\Columns\TextColumn;
TextColumn::make('status')
->color(fn (string $state): string => match ($state) {
'draft' => 'gray',
'reviewing' => 'warning',
'published' => 'success',
'rejected' => 'danger',
})
仅此一点就开启了许多自定义的可能性。
该包也将许多 utilities 作为参数注入到这些函数中。所有接受函数作为参数的自定义方法都可以注入 utilities。
这些注入的 utilities 要求使用特定的参数名。否则,Filament 不知道注入了什么。
注入当前列状态
如果你想访问列字段的当前状态(值),请定义 $state
参数:
function ($state) {
// ...
}
注入当前 Eloquent 记录
如果你想要访问列字段的当前 Eloquent 记录,请定义 $record
参数:
use Illuminate\Database\Eloquent\Model;
function (Model $record) {
// ...
}
请注意,如果这个列没有绑定到 Eloquent 记录,则这个参数值为 null