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

Porovnávanie

Porovnajte prípad s jedným alebo viacerými inými v čitateľnom kóde:

$category = NewsCategory::HotNews;

$category->is(NewsCategory::HotNews);    // true
$category->isNot(NewsCategory::HotNews); // false

$category->isIn([NewsCategory::HotNews, NewsCategory::RegularNews]);        // true
$category->isNotIn([NewsCategory::RegularNews, NewsCategory::PrivateNews]); // true

Porovnania kontrolujú identitu (===). is() a isNot() sú typované na samotný enum a isIn() / isNotIn() prijímajú zoznam prípadov — pole surových hodnôt sa nezhoduje nikdy. Surový vstup preto najprv preveďte na prípad cez from(), tryFromName() alebo tryFromLabel():

$category->isIn(['hot-news']);                       // false — raw values never match
$category->isIn([NewsCategory::from('hot-news')]);   // true

V praxi

Vyfiltrujte kolekciu modelov podľa kategórie:

$public = [NewsCategory::HotNews, NewsCategory::RegularNews];

$articles = Article::query()->latest()->get()
    ->filter(fn (Article $article): bool => $article->category->isIn($public));

Alebo udržte policy čitateľnú:

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

final class ArticlePolicy
{
    public function view(?User $user, Article $article): bool
    {
        return $user !== null || $article->category->isNot(NewsCategory::PrivateNews);
    }
}

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.