NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
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 relation

Query 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 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.