Filament表格优化:如何使用ToggleIconColumn提升用户体验

发布时间 - 2025-08-25 00:00:00    点击率:

在开发 Filament 项目时,我一直希望能找到一种更直观、更美观的方式来展示和切换表格中的状态。Filament 默认的 Toggle Column 虽然功能强大,但在视觉上略显单调。我需要一种能够使用图标来表示状态,并且允许用户直接在表格中切换状态的解决方案。

这时,我发现了 archilex/filament-toggle-icon-column 插件。它完美地结合了 filament 的 toggle column 和 icon column 的优点,允许开发者使用不同的图标和颜色来表示不同的状态,并通过点击图标直接切换状态。

Composer在线学习地址:学习地址

安装 Toggle Icon Column

首先,使用 Composer 安装该插件:

composer require archilex/filament-toggle-icon-column

安装完成后,按照插件的说明,需要发布视图并更新 Tailwind CSS 配置,以确保插件的样式能够正确应用。

php artisan vendor:publish --tag="filament-toggle-icon-column-views"

然后,将插件的视图添加到你的 Filament 主题的

tailwind.config.js
文件中。例如,如果你的主题文件位于
resources/css/filament/admin/tailwind.config.js
,则添加以下内容:

content: [
    ...
    './vendor/archilex/filament-toggle-icon-column/**/*.php',
],

接下来,编译你的主题:

npm run build

最后,运行 Filament 升级命令:

php artisan filament:upgrade

使用 Toggle Icon Column

安装完成后,就可以在 Filament 表格中使用 Toggle Icon Column 了。以下是一个简单的例子:

use Archilex\ToggleIconColumn\Columns\ToggleIconColumn;

return $table
    ->columns([
        ToggleIconColumn::make('is_active'),
    ]);

自定义图标、颜色和大小

Toggle Icon Column 提供了丰富的自定义选项,可以根据需要调整图标、颜色和大小。

  • 自定义图标:

    use Archilex\ToggleIconColumn\Columns\ToggleIconColumn;
    
    ToggleIconColumn::make('is_locked')
        ->onIcon('heroicon-s-lock-open')
        ->offIcon('heroicon-o-lock-closed');
  • 自定义大小:

    use Archilex\ToggleIconColumn\Columns\ToggleIconColumn;
    
    ToggleIconColumn::make('is_locked')
        ->size('xl');
  • 自定义颜色:

    use Archilex\ToggleIconColumn\Columns\ToggleIconColumn;
    
    ToggleIconColumn::make('is_locked')
        ->onColor('primary')
        ->offColor('secondary');
  • 自定义悬停颜色:

    use Archilex\ToggleIconColumn\Columns\ToggleIconColumn;
    
    ToggleIconColumn::make('is_locked')
        ->hoverColor('success');

其他选项

ToggleIconColumn 继承自 Filament 的

Column
类,因此可以使用许多其他方法,例如:

use Archilex\ToggleIconColumn\Columns\ToggleIconColumn;

ToggleIconColumn::make('is_bookmarked')
    ->label('Bookmark status')
    ->translateLabel()
    ->alignCenter()
    ->disabled(fn () => ! auth()->user()->isAdmin())
    ->tooltip(fn (Model $record) => $record->is_bookmarked ? 'Unbookmark' : 'Bookmark')
    ->sortable();

总结

Toggle Icon Column 插件为 Filament 表格增加了一种更直观、更美观的交互方式。通过自定义图标、颜色和大小,可以轻松地将状态信息以视觉化的方式呈现给用户,从而提升用户体验。如果你正在使用 Filament 构建后台管理系统,不妨尝试一下 Toggle Icon Column 插件,相信它会给你带来惊喜。


# composer  # css  # ai  # 继承  # JS  # column  # 自定义  # 是一个  # 安装完成后  # 如果你  # 管理系统  # 但在  # 我一直  # 可以使用  # 能找到  # 可以根据 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用PHP快速搭建高效网站?分步指南  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何在万网利用已有域名快速建站?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  如何在阿里云部署织梦网站?  如何用VPS主机快速搭建个人网站?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  浅析上传头像示例及其注意事项  Android自定义控件实现温度旋转按钮效果  Internet Explorer官网直接进入 IE浏览器在线体验版网址  如何用好域名打造高点击率的自主建站?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  使用spring连接及操作mongodb3.0实例  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  利用python获取某年中每个月的第一天和最后一天  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  深圳网站制作平台,深圳市做网站好的公司有哪些?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何在阿里云香港服务器快速搭建网站?  C#如何调用原生C++ COM对象详解  实例解析Array和String方法  nginx修改上传文件大小限制的方法  如何快速辨别茅台真假?关键步骤解析  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel如何创建自定义中间件?(Middleware代码示例)  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  在Oracle关闭情况下如何修改spfile的参数  Android滚轮选择时间控件使用详解  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  JavaScript数据类型有哪些_如何准确判断一个变量的类型  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Laravel如何发送系统通知?(Notification渠道示例)  利用JavaScript实现拖拽改变元素大小  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Laravel如何使用Blade模板引擎?(完整语法和示例)  教学论文网站制作软件有哪些,写论文用什么软件 ?  浅谈redis在项目中的应用