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

Vyhľadanie prípadu

Prípad nájdete podľa jeho názvu alebo čitateľného popisu a môžete overiť, či existuje. Varianty from* pri nenájdení vyhodia RoundlyConsulting\Enums\Exceptions\EnumException; varianty tryFrom* vrátia null — a pri argumente null ho vrátia hneď:

NewsCategory::fromName('HotNews');       // NewsCategory::HotNews
NewsCategory::tryFromName('Missing');    // null
NewsCategory::tryFromName(null);         // null

NewsCategory::fromLabel('Hot News');     // NewsCategory::HotNews
NewsCategory::tryFromLabel('Nope');      // null

NewsCategory::hasName('HotNews');        // true
NewsCategory::hasValue('hot-news');      // true
MetódaVraciaKeď nič nezodpovedá
fromName(string $name)staticVyhodí EnumException.
tryFromName(?string $name)?staticnull (aj pre argument null).
fromLabel(string $label)staticVyhodí EnumException.
tryFromLabel(?string $label)?staticnull (aj pre argument null).
hasName(string $name)boolfalse
hasValue(string|int $value)boolfalse — striktné porovnanie s values() (pri čistom enume názvy prípadov).

Vyhľadávanie podľa názvu je presné a rozlišuje veľké a malé písmená (hotnews nenájde HotNews). Vyhľadávanie podľa popisu porovnáva s readable(), takže hľadá popis v aktívnom jazyku. hasValue() porovnáva striktne s values() — '5' sa nikdy nezhoduje s celočíselnou hodnotou 5 — a na čistom enume hľadá názov prípadu.

Vyhľadanie podľa hodnoty

Vyhľadávanie podľa hodnoty zostáva natívne — cez vlastné metódy from() a tryFrom() backed enumov v PHP:

NewsCategory::from('hot-news');     // NewsCategory::HotNews — native PHP
NewsCategory::tryFrom('breaking');  // null — native PHP

Import dát

tryFromLabel() je určený na párovanie textu zadaného ľuďmi — stĺpca v tabuľke, CSV exportu či poľa z API — s prípadom enumu bez try/catch:

use App\Enums\NewsCategory;
use App\Models\Article;

foreach ($rows as $row) {
    $category = NewsCategory::tryFromLabel($row['category'] ?? null);

    if ($category === null) {
        continue; // unknown label: skip or report the row
    }

    Article::create([
        'title' => $row['title'],
        'category' => $category,
    ]);
}

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.