NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Enums for Laravel

Backed a čisté enumy

Trait Helpers je navrhnutý pre backed enumy, no všetky metódy fungujú aj na čistých (pure) enumoch bez hodnôt: všade, kde by sa čítala hodnota — values(), storable(), hasValue(), validationRule(), toOptions(), options() a readable() — sa namiesto nej použije názov prípadu.

use RoundlyConsulting\Enums\Helpers;

enum Status
{
    use Helpers;

    case Active;
    case Archived;
}

Status::Active->readable();         // "Active"
Status::labels()->all();            // ['Active', 'Archived']
Status::values()->all();            // ['Active', 'Archived'] — the names stand in for values
Status::toOptions();                // ['Active' => 'Active', 'Archived' => 'Archived']
Status::options()->first()->value;  // 'Active'
Status::validationRule();           // 'in:Active,Archived'
Status::hasValue('Active');         // true
Status::fromLabel('Archived');      // Status::Archived
Status::count();                    // 2

Správanie podľa typu enumu

MetódaBacked enumČistý enum
readable(), label(), labels()Str::headline() hodnotyStr::headline() názvu prípadu
toOptions(), toArray()Kľúčom je hodnotaKľúčom je názov prípadu
options()value = hodnotavalue = názov prípadu
names(), collect(), count(), random()RovnakéRovnaké
fromName(), tryFromName(), hasName()RovnakéRovnaké
fromLabel(), tryFromLabel()Porovnáva s readable()Porovnáva s readable()
is(), isNot(), isIn(), isNotIn(), whenIs*()RovnakéRovnaké
values(), storable()Hodnoty backed enumuNázvy prípadov
validationRule()Pravidlo in: z hodnôt backed enumuPravidlo in: z názvov prípadov
hasValue()Striktná zhoda s hodnotouStriktná zhoda s názvom prípadu

Na čistom enume teda values() a storable() vrátia názvy prípadov, validationRule() prijme presne tieto názvy a hasValue() porovnáva striktne s názvom.

Celočíselné enumy

use RoundlyConsulting\Enums\Helpers;

enum Priority: int
{
    use Helpers;

    case Low = 0;
    case Medium = 5;
    case High = 10;
}

Priority::values();            // [0, 5, 10]
Priority::validationRule();    // 'in:0,5,10'
Priority::hasValue(5);         // true
Priority::hasValue('5');       // false — strict comparison
Priority::Medium->readable();  // "5"
Priority::toOptions();         // [0 => '', 5 => '5', 10 => '10']

hasValue() porovnáva striktne, takže celočíselnému enumu odovzdajte int — vstup z formulára prichádza ako reťazec. validationRule() funguje tak či tak, pretože pravidlo in v Laraveli porovnáva reťazce. Popisy vznikajú z hodnoty, takže čísla zostanú číslami (5 → „5“) a z hodnoty 0 dokonca vznikne prázdny popis — celočíselným enumom preto dajte skutočné popisy prepísaním readable(), ako ukazuje časť Preklad popisov.

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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.