Oba enumy sú podložené reťazcom:
| Enum | Prípady (hodnota) |
|---|---|
ApprovalStatus | Pending (pending), Approved (approved), Rejected (rejected), Cancelled (cancelled), Expired (expired) |
ApprovalRule | Unanimous (unanimous), Quorum (quorum), Any (any), Weighted (weighted) |
Doménové metódy
use RoundlyConsulting\Approvals\Enums\ApprovalRule;
use RoundlyConsulting\Approvals\Enums\ApprovalStatus;
ApprovalStatus::Pending->isPending(); // true
ApprovalStatus::Rejected->isDecided(); // true — approved or rejected
ApprovalStatus::Cancelled->isFinal(); // true — anything but pending
ApprovalStatus::Rejected->isLive(); // true — pending, approved or rejected: still the actor's live decision
ApprovalStatus::Approved->canTransitionTo(ApprovalStatus::Cancelled); // true
ApprovalRule::Quorum->isWeighted(); // true — Quorum and Weighted resolve on summed weight
ApprovalRule::Any->isWeighted(); // falsePopisky, možnosti a validácia
Oba enumy používajú zdieľaný trait Helpers z enums-for-laravel, takže nad doménovými metódami ponúkajú celú sadu pomocníkov — bez jazykového súboru, ktorý by ste museli udržiavať:
ApprovalStatus::values()->all(); // ['pending', 'approved', 'rejected', 'cancelled', 'expired']
ApprovalStatus::labels()->all(); // ['Pending', 'Approved', 'Rejected', 'Cancelled', 'Expired']
ApprovalStatus::options(); // Collection of {value, label, name} option DTOs for selects
ApprovalStatus::validationRule(); // 'in:pending,approved,rejected,cancelled,expired'
ApprovalStatus::tryFromName('Approved'); // ApprovalStatus::Approved
ApprovalStatus::Approved->readable(); // 'Approved' (translated, headline-cased)
ApprovalStatus::Approved->isIn([ApprovalStatus::Approved, ApprovalStatus::Rejected]); // true
ApprovalRule::options(); // a ready-made rule picker
ApprovalRule::validationRule(); // 'in:unanimous,quorum,any,weighted'
ApprovalRule::Weighted->readable(); // 'Weighted'validationRule() vložte priamo do pravidiel requestu a options() do selectu či JSON odpovede — obe sa automaticky držia v súlade s prípadmi:
$request->validate([
'status' => ['required', ApprovalStatus::validationRule()],
'rule' => ['required', ApprovalRule::validationRule()],
]);K dispozícii sú aj names(), toOptions(), toArray(), collect(), count(), random(), fromName(), fromLabel() / tryFromLabel(), hasName() / hasValue(), label(), is() / isNot() / isNotIn() a callbacky whenIs…().
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.