Všetky balíky
Reports for Laravel
Agregácia a dotazy
HasReports pridá každému nahlásiteľnému modelu pomocníkov na počítanie a vyhľadávanie:
use RoundlyConsulting\Reports\Enums\Status;
$post->reportsCount(); // total
$post->reportsCount(Status::Pending); // a specific status
$post->hasBeenReported();
$post->isReportedBy($user);
$post->pendingReports; // open reports relationQuery scopes
Post::query()->withReportCounts()->get(); // eager reports_count
Post::query()->mostReported()->get(); // by total report count
Post::query()->mostReported(Status::Pending)->get(); // count only pending
Post::query()->reportedMoreThan(5)->get(); // more than 5 reports
Post::query()->reportedMoreThan(5, Status::Pending)->get(); // more than 5 pending- withReportCounts() — dočíta reports_count.
- mostReported(?Status) — pridá reports_count a zoradí podľa neho zostupne; so stavom počíta len hlásenia v danom stave.
- reportedMoreThan(int, ?Status) — subjekty s väčším počtom hlásení, než je zadané číslo, voliteľne v rámci jedného stavu; reports_count je súčasťou výsledku.
reportedMoreThan() filtruje cez whereHas, nie cez HAVING nad aliasom počtu, takže funguje na PostgreSQL a MySQL rovnako ako na SQLite.
Priame dotazy na hlásenia
Model Report má vlastné scopes — withStatus, withReason, pending, resolved, rejected a open — pre fronty moderácie a dashboardy:
use RoundlyConsulting\Reports\Enums\Status;
use RoundlyConsulting\Reports\Models\Report;
// A moderation queue: every open report, newest first.
Report::query()->open()->with(['reporter', 'reported'])->latest()->paginate(25);
Report::query()->withStatus(Status::InReview)->get();
Report::query()->withReason('harassment')->get();
Report::query()->pending()->count();
Report::query()->resolved()->get();
Report::query()->rejected()->get();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.