ht3aa/status-tabs 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ht3aa/status-tabs

最新稳定版本:v3.0.2

Composer 安装命令:

composer require ht3aa/status-tabs

包简介

Add tabs according to the casts class of the status column (or column specifiy by you)

README 文档

README

Latest Version on Packagist Total Downloads

Status Tabs Example

Installation

You can install the package via composer (only support filament v3):

composer require ht3aa/status-tabs

Usage

This package provides a StatusTabs class that automatically generates tabs in your Filament resource list page based on the status enum of your model.

Requirements

  1. Your model must have a status column cast to an enum class
  2. Your enum class must implement getLabel() and getIcon() methods

Example Enum

<?php

namespace App\Enums;

enum OrderStatus: string
{
    case PENDING = 'pending';
    case PROCESSING = 'processing';
    case COMPLETED = 'completed';
    case CANCELLED = 'cancelled';

    public function getLabel(): string
    {
        return match($this) {
            self::PENDING => 'Pending',
            self::PROCESSING => 'Processing',
            self::COMPLETED => 'Completed',
            self::CANCELLED => 'Cancelled',
        };
    }

    public function getIcon(): string
    {
        return match($this) {
            self::PENDING => 'heroicon-o-clock',
            self::PROCESSING => 'heroicon-o-arrow-path',
            self::COMPLETED => 'heroicon-o-check-circle',
            self::CANCELLED => 'heroicon-o-x-circle',
        };
    }
}

Example Model

<?php

namespace App\Models;

use App\Enums\OrderStatus;
use Illuminate\Database\Eloquent\Model;

class Order extends Model
{
    protected $casts = [
        'status' => OrderStatus::class,
    ];
}

Using in Filament Resource

In your Filament resource's list page, extend StatusTabs instead of ListRecords:

<?php

namespace App\Filament\Resources\OrderResource\Pages;

use App\Filament\Resources\OrderResource;
use Ht3aa\StatusTabs\StatusTabs;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;

class ListOrders extends StatusTabs
{
    protected static string $resource = OrderResource::class;

    protected function getHeaderActions(): array
    {
        return [
            Actions\CreateAction::make(),
        ];
    }
}

The StatusTabs class will automatically:

  • Create an "All" tab showing all records
  • Create a tab for each status enum case
  • Display the status label, icon, and count badge for each tab
  • Filter records by status when a tab is selected

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-30