Každá výnimka balíka rozširuje ReportsException, ktorá je sama RuntimeException, takže ich môžete zachytávať jednotlivo aj spolu:
| Výnimka | Kedy vznikne | Nesie |
|---|---|---|
DuplicateReportException | prevent_duplicates zablokuje opakované hlásenie. | existing |
InvalidStatusTransitionException | Presun stavu — changeStatus(), review(), close(), changeStatusTo(), resolve alebo reject — nie je deklarovaný a strict_transitions je zapnuté. | report, from, to |
UnknownReportReasonException | Dôvod nie je v zozname povolených a allow_unknown_reasons je false. | slug, allowed |
MissingModeratorsException | Reports::moderate(...)->open() sa zavolá bez moderátorov. | — |
ModeratorRequiredException | Hlásenie pod moderáciou sa pokúsi vyriešiť, zamietnuť alebo presunúť z otvorených stavov niekto iný než určený moderátor (alebo jeho zástupca), prípadne volanie bez aktéra. Nič sa nezapíše. | report, actor |
MissingPruneWindowException | Reports::prune() sa spustí bez $days a bez prune_after_days. | — |
ReportsException | Základná trieda všetkých vyššie; rozširuje RuntimeException. | — |
use RoundlyConsulting\Reports\Exceptions\ReportsException;
use RoundlyConsulting\Reports\Exceptions\UnknownReportReasonException;
try {
Reports::report($post)->by($user)->for($slug)->create();
} catch (UnknownReportReasonException $e) {
$e->slug; // the rejected slug
$e->allowed; // list<string> — the allowed slugs
} catch (ReportsException $e) {
// any other package exception, e.g. DuplicateReportException
}Vytvorenie hlásenia bez subjektu — PendingReport začatý cez Reports::from() bez about() — vyhodí obyčajnú LogicException.
Dve chyby pochádzajú z balíkov pod ním a ReportsException nerozširujú: neplatná konfiguračná hodnota — threshold, prune_after_days, predvolené hodnoty moderácie, duplicate_scope, table, reasons, key_type či model (pozrite Konfigurácia) — vyhodí InvalidConfigurationException z balíka toolkit a otvorenie moderácie s neuloženým moderátorom alebo s kvórom vyšším než počet moderátorov vyhodí InvalidApprovalRequestException z enginu approvals.
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.