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óda | Vracia | Keď nič nezodpovedá |
|---|---|---|
fromName(string $name) | static | Vyhodí EnumException. |
tryFromName(?string $name) | ?static | null (aj pre argument null). |
fromLabel(string $label) | static | Vyhodí EnumException. |
tryFromLabel(?string $label) | ?static | null (aj pre argument null). |
hasName(string $name) | bool | false |
hasValue(string|int $value) | bool | false — 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 PHPImport 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 kryptomienOdoslaní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.