Názvy, hodnoty a popisy
Názvy, hodnoty alebo čitateľné popisy všetkých prípadov získate ako Illuminate\Support\Collection v poradí, v akom sú deklarované — obyčajné pole dostanete cez ->all():
NewsCategory::names()->all(); // ['HotNews', 'RegularNews', 'PrivateNews']
NewsCategory::values()->all(); // ['hot-news', 'regular-news', 'private-news']
NewsCategory::storable()->all(); // ['hot-news', 'regular-news', 'private-news']
NewsCategory::labels()->all(); // ['Hot News', 'Regular News', 'Private News']
NewsCategory::collect(); // Collection<NewsCategory> — every case as an instance
NewsCategory::count(); // 3| Metóda | Vracia | Obsah |
|---|---|---|
names() | Collection<int, string> | Názvy prípadov. |
values() | Collection<int, string|int> | Hodnoty backed enumu (pri čistom enume názvy prípadov). |
storable() | Collection<int, string|int> | To isté ako values(). |
labels() | Collection<int, string> | readable() každého prípadu. |
collect() | Collection<int, self> | Všetky prípady ako inštancie enumu. |
count() | int | Počet prípadov. |
Uloženie povolenej množiny
storable() je alias values() určený na ukladanie — obe vracajú surové hodnoty backed enumu (pri čistom enume názvy prípadov), praktické pre validačné pravidlá, databázové stĺpce typu enum či uloženie povolenej množiny:
use App\Enums\NewsCategory;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Schema::create('articles', function (Blueprint $table): void {
$table->id();
$table->string('title');
$table->enum('category', NewsCategory::storable()->all());
$table->timestamps();
});Reťazenie
Všetko vracia bežnú Illuminate\Support\Collection, takže máte k dispozícii celé API kolekcií:
NewsCategory::values()->all(); // plain PHP array
NewsCategory::labels()->implode(', '); // "Hot News, Regular News, Private News"
NewsCategory::collect()
->reject(fn (NewsCategory $category): bool => $category->is(NewsCategory::PrivateNews))
->map(fn (NewsCategory $category): string => $category->label())
->values()
->all(); // ['Hot News', 'Regular News']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.