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]); // truePorovnania 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')]); // trueV 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 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.