Životný cyklus stavov
Každé hlásenie nesie enum Status a začína v stave Pending:
| Prípad | Hodnota | Otvorený alebo koncový |
|---|---|---|
Status::Pending | pending | Otvorený — počiatočný stav. |
Status::InReview | in_review | Otvorený — moderátor ho posudzuje. |
Status::Resolved | resolved | Koncový — hlásenie bolo oprávnené. |
Status::Rejected | rejected | Koncový — porušenie sa nepotvrdilo. |
Status::Closed | closed | Koncový — vyriešené hlásenie, uzavreté. |
Prechody
Presuny stráži tabuľka prechodov:
| Z | Povolený ďalší stav |
|---|---|
Pending | InReview, Resolved, Rejected |
InReview | Resolved, Rejected, Pending |
Resolved | Closed, Pending |
Rejected | Pending |
Closed | Pending |
use RoundlyConsulting\Reports\Enums\Status;
use RoundlyConsulting\Reports\Facades\Reports;
$report->status; // Status::Pending for a new report
Reports::review($report); // → InReview — fires ReportStatusChanged
Reports::review($report); // no-op when already in that status
Reports::changeStatus($report, Status::Closed); // InReview → Closed is not declared: throws when strict
$report->changeStatusTo(Status::Pending); // model shorthand — same path through the managerKaždý presun spúšťa ChangeReportStatusAction: pri každej skutočnej zmene vyvolá ReportStatusChanged a ak hlásenie už v cieľovom stave je, neurobí nič. Pri zapnutom strict_transitions vyhodí nedeklarovaný prechod InvalidStatusTransitionException; po vypnutí je povolený akýkoľvek prechod.
Pomocníci stavu
Status::transitions(); // the full transition table
Status::Pending->allowedTransitions(); // [InReview, Resolved, Rejected]
Status::Resolved->canTransitionTo(Status::Closed); // true
Status::Rejected->isTerminal(); // true — Resolved, Rejected, Closed
Status::InReview->isOpen(); // true — Pending, InReview
Status::open(); // [Status::Pending, Status::InReview]
Status::InReview->label(); // "In Review"Aj Status používa trait Helpers, takže Status::toOptions() a Status::validationRule() máte pripravené pre filtre a administračné formuláre.
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.