carropublic/discussion

Discussion like comments

4.0.2 2024-03-18 06:09 UTC

README

Latest Version on Packagist Total Downloads

Overview explanation of how this package work with image.

Discussion is nested discussion with approve/disapprove feature. Discussion inside the discussion, like the above image.

Take a look at contributing.md to see a to do list.

Installation

Via Composer

$ composer require carropublic/discussion

The package will automatically register itself.

You can publish the migration with:

php artisan vendor:publish --provider="CarroPublic\Discussion\DiscussionServiceProvider" --tag="migrations"

After the migration has been published you can create the media-table by running the migrations:

php artisan migrate

You can publish the config-file with:

php artisan vendor:publish --provider="CarroPublic\Discussion\DiscussionServiceProvider" --tag="config"

Usage

Get lists of discussions which approve.

$post->discussions()->approve()->get()

Get lists of discussions which got disapprove.

$post->discussions()->disApproved()->get()

Get lists of discussions for both approve and disapprove.

$post->discussions

Register the Model

In order to receive/retrieve discussions from the specific model, add the HasDiscussion trait to the model class. In our case we choose Post as main discussion.

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use CarroPublic\Discussion\Traits\HasDiscussion;

class Post extends Model
{
    use HasDiscussion;
    ...
}

Create Discussions

To create a discussion to your discussable models (in this case Post model), you can use discussion method like the following.

$post = Post::find(1);
$post->discussion('Hello World! This is a discussion');

You can also use discussAsUser method which need to pass the user object. See example in the following.

$user = User::find(1);
$post->discussAsUser($user, 'Hi! This is a simple discussion');

Retrieving Discussion

After you finish creating discussion, You can retrieve all your discussion like the following.

$post->discussions

You can filter only by approve or disapprove like the following.

#For approve discussion
$post->discussions()->approved()->get();

#For disapprove discussion
$post->discussions()->disApproved()->get();

Change log

Please see the changelog for more information on what has changed recently.

Testing

$ composer test

Contributing

Please see contributing.md for details and a todolist.

Security

If you discover any security related issues, please email author email instead of using the issue tracker.

Credits

Take Lots of reference from Laravel Comment package. And modify base on what our need.

License

license. Please see the license file for more information.

-