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

Rýchly štart

Pridajte trait RoundlyConsulting\Enums\Helpers do ľubovoľného enumu. Backed enumy (s reťazcovými alebo celočíselnými hodnotami) dostanú všetky metódy:

namespace App\Enums;

use RoundlyConsulting\Enums\Helpers;

enum NewsCategory: string
{
    use Helpers;

    case HotNews = 'hot-news';
    case RegularNews = 'regular-news';
    case PrivateNews = 'private-news';
}

Všetky pomocné metódy sú odteraz dostupné na enume aj na jeho prípadoch:

NewsCategory::HotNews->label();       // "Hot News"
NewsCategory::values();               // ['hot-news', 'regular-news', 'private-news']
NewsCategory::toOptions();            // ['hot-news' => 'Hot News', 'regular-news' => 'Regular News', ...]
NewsCategory::options();              // Collection<EnumOption> for JS selects
NewsCategory::fromName('HotNews');    // NewsCategory::HotNews
NewsCategory::tryFromLabel('Nope');   // null
NewsCategory::validationRule();       // 'in:hot-news,regular-news,private-news'
NewsCategory::random();               // a random case
NewsCategory::count();                // 3

NewsCategory::HotNews->isIn([NewsCategory::HotNews, NewsCategory::RegularNews]); // true

Metódy vracajúce kolekcie — names(), values(), labels(), toOptions() a ďalšie — vracajú inštancie Illuminate\Support\Collection; komentáre pre prehľadnosť zobrazujú ich obsah ako pole.

S Eloquentom

Trait sa bez problémov kombinuje s natívnym enum castom Laravelu, takže atribút modelu dostanete ako prípad enumu so všetkými pomocnými metódami:

use App\Enums\NewsCategory;
use Illuminate\Database\Eloquent\Model;

final class Article extends Model
{
    /**
     * @return array<string, string>
     */
    protected function casts(): array
    {
        return [
            'category' => NewsCategory::class,
        ];
    }
}

$article->category->label();                       // "Hot News"
$article->category->is(NewsCategory::PrivateNews); // false

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.