epigra / reportable
reportable Polymorphic Eloquent Models for Laravel 5
1.0.1
2020-04-08 00:23 UTC
Requires
- php: ^7.2.5
- illuminate/database: ^5.8 || ^6.0 || ^7.0
- illuminate/support: ^5.8 || ^6.0 || ^7.0
Requires (Dev)
- orchestra/testbench: ^3.8 || ^4.0 || ^5.0
- phpunit/phpunit: ^8.0 || ^9.0
- predis/predis: ^1.1
This package is auto-updated.
Last update: 2020-09-01 17:04:40 UTC
README
Installation
Require this package, with Composer, in the root directory of your project.
$ composer require epigra/reportable
To get started, you'll need to publish the vendor assets and migrate:
php artisan vendor:publish --provider="Epigra\Reportable\ReportableServiceProvider" && php artisan migrate
Usage
Setup a Model
<?php namespace App; use Epigra\Reportable\HasReports; use Illuminate\Database\Eloquent\Model; class Post extends Model { use HasReports; }
Examples
The User Model reports the Post Model
$post->report([ 'reason' => \Str::random(10), 'meta' => ['some more optional data, can be notes or something'], ], $user);
Create a conclusion for a Report and add the User Model as "judge" (useful to later see who or what came to this conclusion)
$report->conclude([ 'conclusion' => 'Your report was valid. Thanks! We\'ve taken action and removed the entry.', 'action_taken' => 'Record has been deleted.', // This is optional but can be useful to see what happend to the record 'meta' => ['some more optional data, can be notes or something'], ], $user);
Get the conclusion for the Report Model
$report->conclusion;
Get the judge for the Report Model (only available if there is a conclusion)
$report->judge(); // Just a shortcut for $report->conclusion->judge
Get an array with all Judges that have ever "judged" something
Report::allJudges();
Get unjudged reports (those without conclusions)
Report::unjudged(); // returns query builder.
Changing the user reporter model
Set your user model in the config('auth.providers.users.model');
Testing
$ phpunit
Security
If you discover a security vulnerability within this package, please open an issue. All security vulnerabilities will be promptly addressed.
Credits
This project exists thanks to Brian Faust and all the people who contributed.
License
Mozilla Public License Version 2.0 (MPL-2.0).