Membuat Enum label
Membuat Enum label
14 Sheet
namespace App\Enums;
use Filament\Support\Contracts\HasColor; use Filament\Support\Contracts\HasIcon; use Filament\Support\Contracts\HasLabel;
enum PaymentStatus: string implements HasLabel, HasColor, HasIcon { case Paid = 'PAID'; case Unpaid = 'UNPAID'; case Expired = 'EXPIRED'; case Failed = 'FAILED';
public function getLabel(): ?string{ return match($this) { self::Paid => 'PAID', self::Unpaid => 'UNPAID', self::Expired => 'EXPIRED', self::Failed => 'FAILED', };} public function getColor(): string | array | null{ return match($this) { self::Paid => 'success', self::Unpaid => 'danger', self::Expired => 'primary', self::Failed => 'info', };} public function getIcon(): ?string{ return match ($this) { self::Paid => 'heroicon-m-check', self::Unpaid => 'heroicon-m-x-mark', self::Expired => 'heroicon-m-clock', self::Failed => 'heroicon-m-x-face-frown', };}}penulisan value case harus sesuai pada tipe data enum yang sudah di deklarasikan pada database baik huruf kecil mau pun besarpada model tambahkan script berikut:protected $casts = [ 'status' => PaymentStatus::class ];Implementasi pada formuse Filament\Forms\Components\Select; use App\Enums\PaymentStatus;
Select::make('status') ->native(false) ->options(PaymentStatus::class)Implementasi pada tableuse Filament\Tables\Columns\TextColumn;
TextColumn::make(PaymentStatus::class) ->badge()
Komentar
Ada 0 komentar pada episode ini.