Všetky výnimky balíka sú v RoundlyConsulting\Approvals\Exceptions a rozširujú ApprovalsException, ktorá je sama RuntimeException — jeden catch tak pokryje celú rodinu:
| Výnimka | Kedy vznikne |
|---|---|
ClosedApprovalRequestException | Rozhodnutie alebo stiahnutie smeruje do uzavretej žiadosti — schválenej, zamietnutej, zrušenej či expirovanej (for). Vlastnosť $request je táto žiadosť. |
IncompletePendingApprovalException | Builder rozhoduje bez aktéra (missingActor) alebo bez schvaľovaného modelu (missingApprovable). |
InvalidApprovalModelException | Nakonfigurovaná trieda modelu nerozširuje očakávaný základný model (forClass). |
InvalidApprovalRequestException | Rozhodnutie je pripojené k žiadosti iného subjektu (foreignSubject); builder žiadosti dostane from() aj stages() (mixedApprovers); schvaľovateľ nie je uložený (unsavedApprover); žiadosť potrebuje viac schválení, než vymenuje schvaľovateľov (moreRequiredThanNamed); kvórum je menšie ako 1 (thresholdBelowOne) alebo ho schvaľovatelia nemôžu dosiahnuť (unreachableThreshold). |
InvalidDelegationException | Delegovanie na seba (selfDelegation) alebo obdobie, ktoré končí skôr, než začne (endsBeforeStart). |
InvalidStatusTransitionException | Nepovolený prechod stavu na modeli Approval (between). |
UnauthorizedApprovalException | Autorizačná Gate aktéra odmietne (forActor), alebo aktér nie je menovaným schvaľovateľom žiadosti či jej otvoreného stupňa ani zástupcom niektorého z nich (notAnApprover). |
UnknownWorkflowException | Šablóna workflow chýba (named) alebo je chybná (invalid). |
use RoundlyConsulting\Approvals\Exceptions\ApprovalsException;
use RoundlyConsulting\Approvals\Exceptions\ClosedApprovalRequestException;
use RoundlyConsulting\Approvals\Exceptions\UnauthorizedApprovalException;
use RoundlyConsulting\Approvals\Facades\Approvals;
try {
Approvals::for($post)->as($user)->approve();
} catch (UnauthorizedApprovalException $e) {
// the gate denied this actor, or the request does not name it
} catch (ClosedApprovalRequestException $e) {
// the round is over — $e->request is the closed request
} catch (ApprovalsException $e) {
// any other approvals error
}Každú výnimku vytvára pomenovaná statická factory uvedená v zátvorke vyššie, čo sa hodí pri overovaní správ v testoch.
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.