<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
roundly-consulting / reports-for-laravel example snippets
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Reports\Contracts\Reportable;
use RoundlyConsulting\Reports\Contracts\Reporter;
use RoundlyConsulting\Reports\Traits\GivesReports;
use RoundlyConsulting\Reports\Traits\HasReports;
class User extends Model implements Reporter
{
use GivesReports;
}
class Post extends Model implements Reportable
{
use HasReports;
}
use RoundlyConsulting\Reports\Enums\Reason;
use RoundlyConsulting\Reports\Facades\Reports;
$report = Reports::report($post)
->by($user)
->for(Reason::Abuse) // a typed, validated reason
->because('This post violates the community guidelines.')
->create(); // a second report by $user throws DuplicateReportException
Reports::review($report); // pending → in review
Reports::resolve($report, by: $moderator, note: 'Removed the post.');
$post->reportsCount(); // 1
Post::query()->mostReported()->get(); // the most-reported posts first