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.
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"
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
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;
...
}
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');
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();
Please see the changelog for more information on what has changed recently.
$ composer test
Please see contributing.md for details and a todolist.
If you discover any security related issues, please email author email instead of using the issue tracker.
Take Lots of reference from Laravel Comment package. And modify base on what our need.
license. Please see the license file for more information.
-