如何解決Filament面板中日期范圍篩選問題?使用malzariey/filament-daterangepicker-filter可以!

可以通過一下地址學習composer學習地址

在開發一個需要處理大量數據的管理系統時,如何讓用戶能夠輕松地篩選特定日期范圍內的數據成為了一個挑戰。Filament面板雖然提供了基本的日期篩選功能,但無法滿足用戶快速選擇常用日期范圍(如“今天”、“昨天”等)的需求。為了解決這個問題,我嘗試了多種方法,最終找到了malzariey/filament-daterangepicker-Filter這個庫。

使用這個庫,你可以輕松地在Filament面板中添加一個日期范圍選擇器和篩選器。它支持用戶通過特定日期范圍或預定義的日期范圍(如“今天”、“昨天”等)來篩選數據。安裝這個庫非常簡單,只需通過composer進行安裝:

composer require malzariey/filament-daterangepicker-filter

安裝后,你可以選擇發布翻譯文件和視圖文件,以確保界面符合你的需求:

php artisan vendor:publish --tag="filament-daterangepicker-filter-translations" php artisan vendor:publish --tag="filament-daterangepicker-filter-views"

這個庫提供了多種使用方式,既可以作為一個字段使用,也可以作為一個篩選器使用。以下是作為字段和篩選器的示例代碼:

use MalzarieyFilamentDaterangepickerFilterFieldsDateRangePicker; use MalzarieyFilamentDaterangepickerFilterFiltersDateRangeFilter;  DateRangePicker::make('created_at'), DateRangeFilter::make('created_at'),

此外,這個庫還提供了許多可選配置,例如設置時區、指定初始日期范圍、設置最小和最大日期、自定義顯示格式等。以下是一些常用的配置示例:

use MalzarieyFilamentDaterangepickerFilterFiltersDateRangeFilter; use MalzarieyFilamentDaterangepickerFilterFieldsDateRangePicker; use CarbonCarbon;  // 設置時區為UTC DateRangeFilter::make('created_at')->timezone('UTC') DateRangePicker::make('created_at')->timezone('UTC')  // 設置初始日期范圍為今天 DateRangeFilter::make('created_at')->startDate(Carbon::now())->endDate(Carbon::now()) DateRangePicker::make('created_at')->startDate(Carbon::now())->endDate(Carbon::now())  // 使用預定義的日期范圍 DateRangeFilter::make('created_at')->defaultToday() DateRangePicker::make('created_at')->defaultToday()  // 設置最小和最大日期 DateRangeFilter::make('created_at')->minDate(Carbon::now()->subMonth())->maxDate(Carbon::now()->addMonth()) DateRangePicker::make('created_at')->minDate(Carbon::now()->subMonth())->maxDate(Carbon::now()->addMonth())

使用malzariey/filament-daterangepicker-filter庫后,我的管理系統的用戶體驗得到了顯著提升。用戶可以更直觀、更快速地篩選出他們需要的數據,極大地提高了工作效率。這個庫不僅功能強大,而且易于集成和配置,是處理日期范圍篩選問題的絕佳選擇。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享