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

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ódaVraciaObsah
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()intPoč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 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.