iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
Modern Web

Laravel 12 開發者幸福度升級指南系列 第 9

Day 09:Filament 列表頁客製化:dot notation、searchable、TextInputColumn

  • 分享至 

  • xImage
  •  

能用 Filament 建立簡單的後台很不錯,不過面對管理上的各種需求,如果不能做到相當的客製化,那麼很可能使用者會完全不買單,導致後台最後必須要大幅撰寫客製化內容,甚至要整個重寫的慘狀。

不過幸好,Filament 在這部分,即使是面對一些很小的調整,有些甚至會讓工程師覺得是可有可無的這類客製化,Filament 都有想到並且加進來。

下面我們來看看一些 Filament 客製化的範例

列出資料

前面我們使用 Filament 工具建立出來的欄位,已經可以列出商品相關的所有資料

不過有時候管理上,會需要列出與該資料相關聯的內容

以前面的例子,像是可能會要求列出商品分類是不是開啟狀態。

這類需求如果客製化,會需要透過一系列關聯來取得資料

不過 Filament 支援使用 dot notation 來顯示關聯資料

所以我們只需要加上

IconColumn::make('category.is_active')
    ->boolean(),

就可以在畫面上看到這個內容

顯示類別是否開啟

如果覺得標籤需要調整,可以透過 label() 進行調整

IconColumn::make('category.is_active')
    ->label('category state')
    ->boolean(),

顯示類別是否開啟調整後畫面

搜尋和排序

過去遇到後台管理時,常常會出現一類需求,希望可以針對單一欄位進行搜尋。

如果要客製化這個需求,每個需要搜尋的欄位都是一個 API,很常會是一個大任務

不過在 Filament 內,這個需求只需要簡單的 searchable() 就可以達成

TextColumn::make('price')
    ->money()
    ->sortable()
    ->searchable(isIndividual: true),

只要這樣做,畫面上就可以呈現出針對價格的搜尋框了

價格搜尋

列表內修改

在預設的操作邏輯內,列表頁面是用來呈現所有資料的,要編輯的話我們可以進入編輯頁面進行操作,

但是有時候使用者會希望經常編輯的欄位,比方說商品標題,可以在列表頁面就進行修改。

這個需求如果客製化起來,由於列表頁的資料很多,也會是一場不小的任務

不過用 Filament 我們只需要將 TextColumn 改成 TextInputColumn 即可

TextInputColumn::make('name')
    ->searchable(),

列表內修改

有關列表頁面可以做到的客製化,這邊先簡單介紹一些

剩下的我們明天再繼續介紹


上一篇
Day 08:利用 Laravel Filament 快速建立管理後台
下一篇
Day 10:Filament 客製化:輸入規則、附加行為、下拉選單、批量編輯
系列文
Laravel 12 開發者幸福度升級指南11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言