---
title: "Možnosti pre frontend — Enums for Laravel | Roundly"
description: "options() vracia typované DTO EnumOption — hodnotu, popis a názov — v tvare, aký očakávajú selecty v JavaScripte, Inertia, Vue a Reacte."
url: https://roundly-consulting.com/sk/open-source/navody/enums-for-laravel/moznosti-pre-frontend
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)

# Možnosti pre frontend

options() vráti kolekciu typovaných DTO EnumOption — zoznam objektov, aký očakávajú selecty v JavaScripte, vrátane názvu prípadu:

```php
NewsCategory::options();
// Collection<EnumOption{ value: 'hot-news', label: 'Hot News', name: 'HotNews' }, ...>

$option = NewsCategory::options()->first();

$option->value; // 'hot-news'
$option->label; // 'Hot News'
$option->name;  // 'HotNews'

$option->toArray();
// ['value' => 'hot-news', 'label' => 'Hot News', 'name' => 'HotNews']
```

## DTO EnumOption

| Člen | Typ | Hodnota |
| --- | --- | --- |
| `value` | `string\|int` | Hodnota backed enumu — pri čistom enume názov prípadu. |
| `label` | `string` | readable() — preložený popis. |
| `name` | `string` | Názov prípadu. |
| `toArray()` | `array` | `['value' => ..., 'label' => ..., 'name' => ...]` |

RoundlyConsulting\\Enums\\DataTransferObjects\\EnumOption je final readonly trieda, takže vytvorenú možnosť už nemožno zmeniť.

## Možnosti z controllera

```php
use App\Enums\NewsCategory;
use Illuminate\Http\JsonResponse;
use RoundlyConsulting\Enums\DataTransferObjects\EnumOption;

final class ArticleCategoryController
{
    public function __invoke(): JsonResponse
    {
        return response()->json([
            'categories' => NewsCategory::options()
                ->map(fn (EnumOption $option): array => $option->toArray())
                ->all(),
        ]);
    }
}

// {"categories":[{"value":"hot-news","label":"Hot News","name":"HotNews"}, ...]}
```

Vlastnosti DTO sú verejné, takže aj samotná kolekcia sa zakóduje do JSON v rovnakom tvare — NewsCategory::options() môžete odovzdať priamo do JSON odpovede alebo ako prop pre Inertia.

options() si tento tvar pre selecty zachová. Keď stavový štítok potrebuje farbu pre každý prípad, použite namiesto toho presentations() — pozri časť Farby štítkov a prezentácia.

## 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)
