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

Oba enumy sú podložené reťazcom:

EnumPrípady (hodnota)
ApprovalStatusPending (pending), Approved (approved), Rejected (rejected), Cancelled (cancelled), Expired (expired)
ApprovalRuleUnanimous (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();          // false

Popisky, 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 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.