Laravel 8 – 13
PHP 8.3+
Low commit activity in last 18 months
A long-lived project that still receives updates
Commentable Polymorphic Eloquent Models for for Laravel. This is fork from artisanry/commentable as it's abandoned
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

mockery/mockery
^1.5
phpunit/phpunit
^11.0|^12.0|^13.0

Runtime

^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
 Project Readme

Laravel Commentable

Build Status PHP from Packagist Latest Version License

Installation

Require this package, with Composer, in the root directory of your project.

$ composer require coliving/commentable

To get started, you'll need to publish the vendor assets and migrate:

php artisan vendor:publish --provider="Artisanry\Commentable\CommentableServiceProvider" && php artisan migrate

Usage

Setup a Model

<?php

namespace App;


use Artisanry\Commentable\Traits\HasComments;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasComments;
}

Create a comment

$user = User::first();
$post = Post::first();

$comment = $post->comment([
    'title' => 'Some title',
    'body' => 'Some body',
], $user);

dd($comment);

Create a comment as a child of another comment (e.g. an answer)

$user = User::first();
$post = Post::first();

$parent = $post->comments->first();

$comment = $post->comment([
    'title' => 'Some title',
    'body' => 'Some body',
], $user, $parent);

dd($comment);

Update a comment

$comment = $post->updateComment(1, [
    'title' => 'new title',
    'body' => 'new body',
]);

Delete a comment

$post->deleteComment(1);

Count comments an entity has

$post = Post::first();

dd($post->commentCount());

Testing

$ phpunit

Security

If you discover a security vulnerability within this package, please send an e-mail to hello@basecode.sh. All security vulnerabilities will be promptly addressed.

Credits

This project exists thanks to all the people who contribute.

License

Mozilla Public License Version 2.0 (MPL-2.0).