---
title: "Farby štítkov a prezentácia — Enums for Laravel | Roundly"
description: "Priraďte prípadom farbu cez HasColor; presentation() a presentations() vrátia DTO {value, label, color} pre badge a stavové štítky."
url: https://roundly-consulting.com/sk/open-source/navody/enums-for-laravel/farby-a-prezentacia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Enums for Laravel](https://roundly-consulting.com/sk/open-source/navody/enums-for-laravel.md)

# Farby štítkov a prezentácia

K dispozícii od verzie 1.1.0. Pre badge a stavové štítky môže enum priradiť každému prípadu farbu implementovaním RoundlyConsulting\\Enums\\Contracts\\HasColor. presentation() potom vráti jeden prípad ako DTO EnumPresentation a presentations() všetky prípady v poradí deklarácie:

```php
use RoundlyConsulting\Enums\Attributes\TranslatedLabels;
use RoundlyConsulting\Enums\Contracts\HasColor;
use RoundlyConsulting\Enums\Helpers;

#[TranslatedLabels]
enum OrderStatus: string implements HasColor
{
    use Helpers;

    case Pending = 'pending';
    case Shipped = 'shipped';

    public function color(): string
    {
        return match ($this) {
            self::Pending => 'warning',
            self::Shipped => 'success',
        };
    }
}

OrderStatus::Shipped->presentation();     // EnumPresentation {value: 'shipped', label: 'Na ceste', color: 'success'}
OrderStatus::presentations();             // Collection<int, EnumPresentation>, every case in declaration order
OrderStatus::presentations()->toJson();   // [{"value":"pending","label":"…","color":"warning"}, …]
```

- Farba je ľubovoľný reťazec, ktorému rozumie váš frontend — variant badge, CSS trieda či hex kód. Balík ju len odovzdá ďalej a nikdy ju neinterpretuje.
- HasColor je rozhranie, nie metóda traitu, takže enum, ktorý už má metódu color() s iným návratovým typom, funguje ďalej: v prezentáciách má color: null, kým rozhranie neimplementuje.
- presentation() použije hodnotu backed enumu (pri čistom enume názov prípadu) v natívnom type, takže int zostane intom, a pre popis readable(), takže platia preložené popisy aj prepísané readable(). presentations() zavolá presentation() pre každý prípad.
- Bez HasColor je color null.
- options() si pre selecty zachová tvar {value, label, name}; keď potrebujete farbu, použite presentations().

## DTO EnumPresentation

| Člen | Typ | Hodnota |
| --- | --- | --- |
| `value` | `string\|int` | Hodnota backed enumu v natívnom type — pri čistom enume názov prípadu. |
| `label` | `string` | readable() — preložený popis. |
| `color` | `?string` | color() pri HasColor, inak null. |
| `toArray()` | `array` | `['value' => ..., 'label' => ..., 'color' => ...]` |
| `jsonSerialize()` | `array` | To isté ako toArray(). |

RoundlyConsulting\\Enums\\DataTransferObjects\\EnumPresentation je final readonly trieda, ktorá implementuje Arrayable a JsonSerializable: toArray() aj json\_encode() vždy vrátia presne value, label a color v tomto poradí, takže presentations() môžete odovzdať priamo do JSON odpovede alebo ako prop pre Inertia.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/enums-for-laravel.md)
