Ochrana pred duplicitami
Pri zapnutom prevent_duplicates (predvolene) nemôže nahlasovateľ — ani identifikátor hosťa — podať na ten istý subjekt druhé hlásenie. Pokus vyhodí DuplicateReportException s existujúcim hlásením. Hlásenia na jeden subjekt sa spracúvajú postupne, takže dvojité odoslanie neprekĺzne:
use RoundlyConsulting\Reports\Exceptions\DuplicateReportException;
try {
Reports::report($post)->by($user)->for(Reason::Spam)->create();
} catch (DuplicateReportException $e) {
$e->existing; // the Report already on file
}Rozsah
| duplicate_scope | Nové hlásenie sa zablokuje, keď… |
|---|---|
open | ten istý nahlasovateľ už má na subjekte hlásenie v stave Pending alebo InReview. Po jeho vybavení môže nahlásiť znova. (Predvolené.) |
any | existuje akékoľvek skoršie hlásenie od toho istého nahlasovateľa — vybavené aj nevybavené. |
Vyhľadávanie ide cez predvolený dotaz modelu, takže soft-deleted hlásenia nové hlásenie nikdy nezablokujú.
Čo sa porovnáva
- Prihlásený nahlasovateľ sa porovnáva podľa typu a id nahlasovateľa.
- Hosť sa porovnáva podľa guest_identifier medzi hláseniami bez nahlasovateľa.
- Úplne anonymné hlásenie — bez nahlasovateľa aj identifikátora — nemá s čím porovnať, a preto sa nikdy nededuplikuje.
Kontrolu úplne vypnete nastavením prevent_duplicates na false.
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.